机器学习(贝叶斯,K-means,ROC,AUC)

申明:因为看的这个课老师讲的有点乱,课程也有的章节少那么几小节。所以对一些东西没理解透彻,而且有些乱。

所以,望理解,等以后学的更深刻了再回来修改。

1.ROC与AOC

ROC与AUC

ROC:横轴False 纵轴TRUE
理想情况下(0,1)达不到 最完美的情况
每一个Threshold都可以判断出来TPR,FPR
比如Threshold最大时,TP=FP=0对应于原点。即对应的都是负样本
当Threadhold最小时,TN,FN都为0,对应于(1,1)点,即都是正样本
(1,0)点是最糟糕的点,因为他避开了所有的正确答案
(0,0)点实际上分类器预测的所有样本都是负样本。因为positive全为01,所以只有Not positive
(1,1)实际上分类器预测的所有样本都是正样本 因为只有positive
对于y=x上的点,这条对角线上的点其实表示的是一个采用随机猜想策略的分类器的结果,表示该分类器对于一半的样本猜测其为正样本,另一半为负样本。
AUC被定义为曲线下的面积,AUC在0.5到1之间
(之所以大于0.5是因为几乎不存在一个模型还不如猜的准)曲线面积越大越好即对于分类器而言,AUC越大越好

从sklearn.metrics import roc_auc_score
导入AUC计算,只需要传入参数是(Y真实值,Y预测值

2.在树的可视化的时候,由是否满足根特征的条件分为True和False 样本数占的越大颜色越深,如果发现大多数数据都属于一类的话可能会发生过拟合,遇到这种情况的时候,调整决策树的最主要依赖的特征,把之前最主要依赖的特征直接Drop重做一个决策树(反正在建造树的时候也是随机选择几个特征)

在集成的时候可以针对不同的树将他们的预测结果取个平均,取平均后再去计算AUC时发现的确比就一颗树的时候要好许多。

在sklearn.ensemble导入RandomForestClassifier
rf=RandomForestClassifier(
n_estimators=10,10棵树
max_features=3,
random_state=SEED)直接集成随机森林,10棵树

平均分策略并不是很好。在集成时,将效果差的直接Drop,也可以根据不同的贡献程度分配不同的权重来进行

stacking:

第一层选择好多个弱分类器集成,然后将输出结果作为第二层的输入。不过在这里我不知道第二层的分类器处理第一层输出数据时到底是如何处理的,很乱,不知道原理,以后来填坑。

不过在选择数据时,第一层和第二层不能用同样的数据,但是如果切分开的话又会造成数据量少而影响结果。所以,还是需要用交叉验证。

还有虽然说stacking是串行,但也可以并行操作 SuperLearner

 3.贝叶斯

其实这个公式可以由条件概率公式证明。P(AB)=P(A|B)P(B)=P(B|A)P(A)很明显吧..

对于垃圾邮件的过滤。P(h+)或者P(h-)都是很容易求的,就是指在给定库中二者的比例。

p(D|h+)表示在非垃圾邮件中包含这个邮件的概率。因为这份邮件也是由若干单词构成。扩展式如上。说实话不理解这里,因为我觉得所谓的扩展和没扩展一样的啊...扩展成上式之后再换成朴素贝叶斯,相互之间独立,所以上式又可以变成P(d1|h+)*P(d2|h+)。。。。这个就很容易得到了吧...就相当于这么多非垃圾邮件中出现某个单词的频率..也是先验概率。

TF-IDF

TF就是词频浏览,IDF是逆文档频率,上面有计算公式。据我目前在学习时所体会到的,这个只是一种将一个个输入数据转变为向量,可以根据词频,也可以根据这个来计算每个词对应的数然后构成向量,如下既是引用这个。

 4.SVM

SVM添加超平面的时候尽量使最靠近分离平面的那个元素与超平面的距离变大。
大部分数据对于分离超平面都没有作用,能决定分离超平面的,只是已知的训练数据中很小的一部分。对于超平面有着非常强大影响的数据点也被称为支持向量。
核函数可以将原始特征映射到另一个高维特征空间中,解决原始空间的线性不可分问题

今天只是简单的了解,之前只会直接从sklearn中调,现在想学习原理,一起加油吧

5.K-means

聚类概念:
无监督问题,聚类:相似的东西分到一组
评估和调参有些困难

K means
要得到簇的个数 K 聚成几堆
质心:均值,即向量各维度取平均值 对于每一堆中有一个质心
距离的度量:欧氏距离和余弦相似度
要先对数据进行标准化
优化目标:对于每一个簇,其中每一个样本到中心点的距离越近越好
根据K,会初始化随机K个点,然后计算点分别到这K个点的距离来进行分离,
更新质心,将一个簇里面再算一个质心。
再重新计算距离,进行分类
继续更新///////////
直到质心基本不变了或者是样本大致不再变了
劣势:
K值难确定 复杂度与样本呈现线性关系 很难发现任意形状的簇 与初始值也有很大的原因

聚类评估:轮廓系数:
计算一个簇中一个样本到其他样本的平均距离
越小越好一个样本到其他簇的平均距离,希望越大越好
s=b-a/max(a,b)接近1越好

6.PCA

基变换,所以对于降到K维,我们也是需要找到一个K维向量,然后去和原来的向量做内积运算,即可降维

在PCA中尽量使投影的方差比较大

想要找不相关的也就是垂直的,90度

由协方差矩阵可以看出,其对角线为方差,其他是协方差,我们想要让协方差为0

所以可以实现将协方差对角化

原始数据输入,构造协方差矩阵1/mXX的转置,求其特征值和特征向量,然后将特征向量从小到大排序。因为最后化为1维,所以选择最大的即可。对角化的话特征向量组成的矩阵可以使协方差矩阵对角化。对于原数据,只需用选择出来的特征向量去内积。因为是基,所以模为1.

原文地址:https://www.cnblogs.com/libin123/p/9998302.html

时间: 2024-10-10 06:10:03

机器学习(贝叶斯,K-means,ROC,AUC)的相关文章

机器学习-贝叶斯算法

0. 前言 这是一篇关于贝叶斯方法的科普文,我会尽量少用公式,多用平白的语言叙述,多举实际例子.更严格的公式和计算我会在相应的地方注明参考资料.贝叶斯方法被证明是非常 general 且强大的推理框架,文中你会看到很多有趣的应用. 1. 历史 托马斯·贝叶斯(Thomas Bayes)同学的详细生平在这里.以下摘一段 wikipedia 上的简介: 所谓的贝叶斯方法源于他生前为解决一个"逆概"问题写的一篇文章,而这篇文章是在他死后才由他的一位朋友发表出来的.在贝叶斯写这篇文章之前,人们

【数据挖掘】朴素贝叶斯算法计算ROC曲线的面积

题记:          近来关于数据挖掘学习过程中,学习到朴素贝叶斯运算ROC曲线.也是本节实验课题,roc曲线的计算原理以及如果统计TP.FP.TN.FN.TPR.FPR.ROC面积等等.往往运用ROC面积评估模型准确率,一般认为越接近0.5,模型准确率越低,最好状态接近1,完全正确的模型面积为1.下面进行展开介绍: ROC曲线的面积计算原理 一.朴素贝叶斯法的工作过程框架图 二.利用weka工具,找到训练的预处理数据 1.利用朴素贝叶斯算法对weather.nominal.arff文件进行

机器学习——贝叶斯算法

目录: 朴素贝叶斯 贝叶斯网络 朴素贝叶斯 特征属性之间没有关联关系,相互独立的,在此基础上应用贝叶斯定理.  文本数据分类知识 原文地址:https://www.cnblogs.com/qianchaomoon/p/12144503.html

机器学习-贝叶斯拼写纠正器实战

#python版本3.7 import re, collections #将语料库里的单词全部转换为小写def words(text): return re.findall('[a-z]+', text.lower()) #词频统计def train(features): model = collections.defaultdict(lambda: 1) for f in features: model[f] += 1 return model NWORDS = train(words(ope

【机器学习实验】使用朴素贝叶斯进行文本的分类

引言 朴素贝叶斯由贝叶斯定理延伸而来的简单而强大的概率模型,它根据每个特征的概率确定一个对象属于某一类别的概率.该方法基于一个假设,所有特征需要相互独立,即任一特征的值和其他特征的值没有关联关系. 虽然这种条件独立的假设在许多应用领域未必能很好满足,甚至是不成立的.但这种简化的贝叶斯分类器在许多实际应用中还是得到了较好的分类精度.训练模型的过程可以看作是对相关条件概率的计算,它可以用统计对应某一类别的特征的频率来估计. 朴素贝叶斯最成功的一个应用是自然语言处理领域,自然语言处理的的数据可以看做是

强大而精致的机器学习调参方法:贝叶斯优化

一.简介 贝叶斯优化用于机器学习调参由J. Snoek(2012)提出,主要思想是,给定优化的目标函数(广义的函数,只需指定输入和输出即可,无需知道内部结构以及数学性质),通过不断地添加样本点来更新目标函数的后验分布(高斯过程,直到后验分布基本贴合于真实分布.简单的说,就是考虑了上一次参数的信息**,从而更好的调整当前的参数. 他与常规的网格搜索或者随机搜索的区别是: 贝叶斯调参采用高斯过程,考虑之前的参数信息,不断地更新先验:网格搜索未考虑之前的参数信息 贝叶斯调参迭代次数少,速度快:网格搜索

[机器学习&数据挖掘]朴素贝叶斯数学原理

1.准备: (1)先验概率:根据以往经验和分析得到的概率,也就是通常的概率,在全概率公式中表现是“由因求果”的果 (2)后验概率:指在得到“结果”的信息后重新修正的概率,通常为条件概率(但条件概率不全是后验概率),在贝叶斯公式中表现为“执果求因”的因 例如:加工一批零件,甲加工60%,乙加工40%,甲有0.1的概率加工出次品,乙有0.15的概率加工出次品,求一个零件是不是次品的概率即为先验概率,已经得知一个零件是次品,求此零件是甲或乙加工的概率是后验概率 (3)全概率公式:设E为随机试验,B1,

机器学习——朴素贝叶斯(NBC)

朴素贝叶斯分类(NBC)是机器学习中最基本的分类方法,是其他众多分类算法分类性能的对比基础,其他的算法在评价性能时都在NBC的基础上进行.同时,对于所有机器学习方法,到处都蕴含着Bayes统计的思想. 朴素贝叶斯基于贝叶斯地理和特征条件独立性假设,首先基于条件独立性假设学习输入X和输出Y的联合分布P(X,Y),同时利用先验概率P(Y),根据贝叶斯定理计算出后验概率P(Y|X),找出每个类别的最大的后验概率即确定为相应的类别.算法实现简单,学习和预测的效率都很高, 基本定义 输入空间Rn为特征化的

机器学习Matlab实战之垃圾邮件分类————朴素贝叶斯模型

本系列来自于我<人工智能>课程复习总结以及机器学习部分的实验总结 垃圾邮件分类是监督学习分类中一个最经典的案例,本文先复习了基础的概率论知识.贝叶斯法则以及朴素贝叶斯模型的思想,最后给出了垃圾邮件分类在Matlab中用朴素贝叶斯模型的实现 1.概率 1.1 条件概率 定义:事件B发生的情况下,事件A发生的概率记作条件概率P(A|B) P(A|B)=P(A∧B)P(B) 条件概率也叫后验概率,无条件概率也叫先验概率(在没有任何其它信息存在的情况下关于命题的信度) 可以得到乘法规则: P(A∧B)