机器学习评估指标
准确率(Accuracy)
Accuracy=分对的样本/所有样本
错误率
错误率=分错的样本/所有样本
但是由于这两种评价方法将正类和负类看的同等重要不适合用来分析不平衡的数据集,而查准率即精确率、查全率(召回率)更加适合于不平衡的数据集。
1.混淆矩阵
真正类率(True Positive Rate) TPR = TP/(TP+FN),即被预测为正类的正实例占实际正类的比例。
假正类率(False Positive Rate) FPR = FP/(FP+TN),即被预测为正类的负实例占负实例实际数的比例。
真负类率(True Negative Rate) TNR = TN/(FP+TN),即被预测为负类的负实例占负实例实际数的比例。
假负类率(False Negative Rate)FNR = FN/(TP+FN),即被预测为负类的正实例占正实例实际数的比例。
召回率(查全率 Recall)R = TPR = TP/(TP+FN)。
准确率(Accuracy) Accuracy = (TP+TN)/(TP+FN+FP+TN),即分类正确的样本数占所有样本数量。
精确率(查准率 Precision) Precision=TP/(TP+FP),即被预测为正类的实例中,有多少比例的真正类。
由于查准率和查全率通常情况下相互矛盾,一个高则另一个较低。
调和平均值为:2/F1-score = 1/Precision+1/Recall
即F1-score = (2PrecisionRecall)/(Precision+Recall)
F1值为查准率和查全率的调和均值,是分类与信息检索中常用的指标之一。
ROC曲线(Receiver Operating Characteristic)以及AUC,常用来评价一个二分类器的优劣。
ROC曲线的横轴为FPR,假正类率,即误判为正类的比例。
ROC曲线的纵轴为TPR,真正累率,即正确的判断为正类的比例。
TPR = TP/(TP+FN)
FPR = FP/(FP+TN)
TPR+FPR=1
TPR+FNR=1
FPR=FNR
考虑ROC曲线图中的四个点。
第一个点(0,1),即FPR=0,TPR=1,意味着FP(false positive)=0,且FN(false negative)=0 。 这是一个完美的分类器,将所有的样本都正确分类。
第二个点(1,0),即FPR=1,TPR=0,类似地分析可以发现这是一个最糟糕的分类器,因为它成功避开了所有的正确答案。
第三个点 (0,0),即FPR=TPR=0,即FP(false positive)=TP(true positive)=0,可以发现该分类器预测所有的样本都为负样本(negative)。
第四个点(1,1),分类器实际上预测所有的样本都为正样本。经过以上的分析,我们可以断言,ROC曲线越接近左上角,该分类器的性能越好。
绘制ROC曲线
根据分类器的概率预测结果对样例排序,并按此顺序依次选择不同的“截断点”,逐个把样例作为正例进行预测,每次计算出当前分类器的“真正率”和“假正率”然后分别以他们为纵轴和横轴绘图。
假设已经得出一系列样本被划分为正类的概率,然后按照大小排序,下图是一个示例,图中共有20个测试样本,“Class”栏表示每个测试样本真正的标签(p表示正样本,n表示负样本),“Score”表示每个测试样本属于正样本的概率。
进而,我们从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本。举例来说,对于图中的第4个样本,其“Score”值为0.6,那么样本1,2,3,4都被认为是正样本,因为它们的“Score”值都大于等于0.6,而其他样本则都认为是负样本。每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。我们共得到了20组FPR和TPR的值。
一般地我们希望分类器得到的分类结果是完全正确的,也就是正例样本全部都能够被检测出来,并且不会混入真负例样本,这个时候TPR→1且FPR→0,反应在图像上好的分类器的折线应该更加接近左上角。当样本足够多时,折线就近似为圆滑的曲线,类似于右图。
AUC
AUC分数是ROC曲线下的面积(Area under curve),越大意味着分类器效果越好。显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。
既然已经这么多评价标准,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。
例如,有100个人去看病,其中10人为患者, 90人是非患者。把患者看作正类,非患者看作负类,这是一个类不平衡的分布情况。
若预测结果为:2人为患者,98人为非患者。显然,这个预测结果是不理想的。
但此时,
准确率(Accuracy):分类正确的样本数/所有样本数量,即:
Accuracy= (TP+TN) / (TP+ FN + FP + TN)= (90+2)/100=92%
大类的效果掩盖了小类的预测性能!!!
比较校验
比较不同分类器性能不可以直接按评估指标进行比较原因如下:
1.测试性能不等于泛化性能
2.测试性能会随着测试集的变化而变化
3.很多机器学习算法本身有一定随机性
比较校验方法如下:
(1)成对双边t检验
分类器A和分类器B采用k折交叉验证的方法可得k对测试错误率,测试错误率分别为