ROC,AUC,PR

1.召回率、准确率、ROC曲线、AUC、PR曲线这些基本概念

这个是今天的重点,传统机器学习里面也是很重要的一点,刚好可以重新学习一下,像AUC其实它就是一个用来评判你的一个模型的准确率的,因为在普通的正确率中,会因为样本的不平衡,而正确率也会跟着改变受到影响!

今天就来彻底搞懂什么是AUC,什么是ROC

1.性能度量:

机器学习要建模,而对于一个模型的好坏也就是对于判定一个模型的泛化能力,我们需要用什么去评判它的泛化能力了,这里就用到了性能度量,它就相当于一个指标。有了指标,我们就能对比不同的模型,从而去判断模型的好坏。而AUC/ROC就是用于分类的指标(性能度量)

2.混淆矩阵:

如果我们是二分类模型,我们将预测结果于实际结果两两混合,会出现4种情况,这就是所谓的混淆矩阵。

ROC,AUC,PR

由于1和0阅读性不高,所以我们用P和N表示样本的两种不同的标记,P代表正样本,N代表负样本。然后预测1,0我们用T,F表示
P(positive):代表1

N(nagative):代表0

T(True):代表预测正确
F(False):代表预测错误

按照上面的混淆矩阵就变成了:

ROC,AUC,PR

TP:代表的是预测为1,预测正确T,即实际为1(P)%

FP:代表的是预测为1,预测错误F,实际为0(N)

FN:代表的是预测为0,预测错误F,实际为1(P)

TN:代表的是预测为0,预测正确T,实际为0(N)

懂了吧,呕心沥血,还自己画图。。。

3.准确率

分类指标中,我们可以想到准确率,准确率的定义是预测正确的结果占总样本的百分比。准确率的公式:(TP+TN)/(TP+FP+FN+TN).

准确率虽然可以判断总的正确率,但是样本不平衡的情况下,并不能作为很好的指标衡量结果。比如一个总的样本中,正样本占

90%,负样本占10%,样本严重不平衡。对于这种情况,我们只需要将全部样本预测为正样本可得到90%的高准确率,但实际上我们并没有很用心的分类,就是无脑分一下。这就是表明了:由于样本的不平衡,导致了得到的高准确率结果含有很大的水分。所以样本不平衡,准确率是不可靠的,所以我们会用到其它两种指标:精准率和召回率

4.精准率

精准率又叫查准率,针对预测结果,含义是在所有预测为正的样本中实际为正的样本的概率,就是在预测为正样本的结果中,我们其实真正预测对了,真正的将正样本预测为正样本的概率为多少。精准率代表的是正样本,而准确率代表的是总样本

精准率:TP/(TP+FP)

5.召回率

召回率又称查全率,含义是在所有被预测为正样本的中实际为正的样本的概率。

查全率:TP/(TP+FN)

6.P-R曲线

查全率与查准率组成了横纵坐标的P-R曲线,这条曲线的点对应了相应的查全率与查准率。为了保证得到查全率与查准率都很高,这里就涉及了F1分数。F1分数就是二者要找到了那个平衡点。

F1分数的公式:2*查全率*查准率/(查全率+查准率)

7.ROC曲线

ROC曲线是基于混淆矩阵得来的。它可以无视样本不平衡

8.AUC

ROC曲线面积,AUC取值0.5-1 (0.5就是随机预测,最小也就是0.5)

2.

下载中文数据集ThuCNews:

ROC,AUC,PR

下载大型电影评论数据集:

ROC,AUC,PR

 

3.IMDB数据集的探索

ROC,AUC,PR

这个数据集有一个train文件夹和一个test文件夹,train文件夹下面就是:

ROC,AUC,PR

有着一些积极评论和消极评论,然后里面每个文件就有很多.txt关于每个用户评论的词条,其实我们做的就是对这些词条进行切分,然后做标记,积极词条是哪些,消极哪些,然后用算法训练以便以后我们用于评价一个用户的评价到底是积极还是消极

4.ThuCnews

这个数据集就很明显就是一个关于新闻文本的数据,训练集和测试集了里面的词条都很多,主要就是对这些词条进行分类,是体育,还是娱乐,这些就是先是有着标签,然后训练每一个类型会出现哪些关键词,这样用概率去判断,当出现什么词频最多,然后就是那个新闻的概率最大。