一般我们看到的机器学习的模型都是用loss和accuracy来评价的,但实际我们也会接触到用“TP”、“TN”、“FP”、“FN”来评价模型的,事实上其他诸如准确率、召回率等评价标准都是以“TP”、“TN”、“FP”、“FN”为基础用公式组合而来的,它们的含义如下表所示:
评价标准 | 含义 |
True positives(TP,真正) | 预测为正,实际为正 |
True negatives(TN,真负) | 预测为负,实际为负 |
False positives(FP,假正) | 预测为正,实际为负 |
False negatives(FN,假负) | 预测为负,实际为正 |
对于上表的记忆,我们只需记得字母缩写对应的英文单词的含义就不难,"True"和"False"代表的是实际的正负,"positives"和"negatives"代表的是预测的正负。由上表又可以进一步推导出下表:
定义 | 公式 | 含义 |
TPR(true positive rate,真正类率,灵敏度,Sensitivity) | TPR = TP/(TP+FN) | 代表分类器预测的正类中实际正实例占所有正实例的比例。 |
FPR(false positive rate,假正类率) | FPR = FP/(FP+TN) | 代表分类器预测的正类中实际负实例占所有负实例的比例。 |
TNR(ture negative rate,真负类率,特异度,Specificity) | TNR = TN/(FP+TN) = 1 - FPR | 代表分类器预测的负类中实际负实例占所有负实例的比例。 |
- Recall(召回率)
Recall = TPR = TP /(TP+FN)
即当前被分到正样本类别中,真实的正样本占所有正样本的比例,即召回率(召回了多少正样本比例);(召回率表示真正预测为正样本的样本数占实际正样本的样本数的比率)。
- Precision(精确率)
Pre = TP /(TP+FP)
当前预测为正样本类别中,被正确分类的比例(即正式正样本所占比例),就是我们一般理解意义上所关心的正样本的分类精确率确率;(精确率表示真正预测为正样本的样本数占所有预测为正样本的样本数的比例) 通俗说:预测为正样本中正确的占的比例。
- Accuracy(准确率,ACC)
ACC = (TP+TN) / (TP+TN+FN+FP)
表示预测正确的样本占所有样本的比率。
- F-Score
F-Score 是精确率Precision和召回率Recall的加权调和平均值。该值是为了综合衡量Precision和Recall而设定的。计算公式为:




这时,Precision和Recall都很重要,权重相同。当有些情况下,我们认为Precision更重要,那就调整参数的值小于1;如果我们认为Recall更加重要,那就调整参数
的值大于1。
一般来说,当F-Score或F1-score较高时,说明结果较理想。
- ROC曲线
在一个二分类模型中,假设采用逻辑回归分类器,其给出针对每个实例为正类的概率,那么通过设定一个阈值如0.6,概率大于等于0.6的为正类,小于0.6的为负类。对应的就可以算出一组(FPR,TPR),在平面中得到对应坐标点。随着阈值的逐渐减小,越来越多的实例被划分为正类,但是这些正类中同样也掺杂着真正的负实例,即TPR和FPR会同时增大。阈值最大时,对应坐标点为(0,0),阈值最小时,对应坐标点(1,1)。
如下面这幅图,(a)图中实线为ROC曲线,线上每个点对应一个阈值。
(b) P和N得分不作为特征间距离d的一个函数,随着阈值theta增加,TP和FP都增加。
横轴FPR:1-TNR,1-Specificity,FPR越大,预测正类中实际负类越多。
纵轴TPR:Sensitivity(正类覆盖率),TPR越大,预测正类中实际正类越多。
理想目标:TPR=1,FPR=0,即图中(0,1)点,故ROC曲线越靠拢(0,1)点,越偏离45度对角线越好,Sensitivity、Specificity越大效果越好。
- AUC
AUC 即ROC曲线下的面积,计算方式即为ROC Curve的微积分值,其物理意义可以表示为:随机给定一正一负两个样本,将正样本排在负样本之前的概率,因此AUC越大,说明正样本越有可能被排在负样本之前,即分类额结果越好。
AUC(Area under Curve):Roc曲线下的面积,介于0.1和1之间。Auc作为数值可以直观的评价分类器的好坏,值越大越好。