简介
常见的分类模型评判指标:
- 混淆矩阵(Confusion Maxtrix)
- ROC曲线
- AUC面积
混淆矩阵
混淆矩阵的定义
混淆矩阵就是分别统计分类模型预测正类、错类的个数,然后把结果放在一张表格中表示出来
以二分类问题为例,我们的模型最终要判样本的结果是0 或者1,也可以说是正例(positive)或者反例(negative)
从样本数据中能够直接知道真实情况下,哪些数据结果是positive,哪些结果是negative。同时,我们通过用样本数据跑出分类型模型的结果,也可以知道模型认为这些数据哪些是positive,哪些是negative。
因此,我们可以得到四个指标
- 真实值是positive,模型预测也是positive的数量,即为真正类(True Positive TP)
- 真实值是positive,模型预测为negative的数量,即为假负类(False Negative FN)
- 真实值是negative,模型预测也是negative的数量,即为真负类(True Negative TN)
- 真实值是negative,模型预测为positive的数量,即为假正类(False Positive FP)
TP: 正确肯定的数目
FN: 漏报的数目
FP: 误报
TN: 正确拒绝非匹配的数据
TP+FN+TN+FP = 总的样本数量,其中TP和TN为预测正确的数量
将这四个指标放在表格中,就得到如下一个矩阵,它就是混淆矩阵:
混淆矩阵的指标
在大量数据面前,简单的算个数目很难判定模型的好坏,因此在混淆矩阵的基础上有延伸了四个指标,成为二级指标
- 准确率(Accuracy)
- 精准率(Precision)
- 灵敏度(Sensitive),也叫召回率(Recall)
- 特异度(Specificity)
通过上面的二级指标,可以将混淆矩阵的值转换为0到1之间的值,便于标准化的衡量
有时候会将精确率和召回率两个指标放在一起看,就衍生了三级指标
这个指标叫做F1 Score
其中,P代表precision,R代表recall,F1-Score指标综合了Precison和Recall的产出结果,F1-Score取值为0到1,1代表模型最好,0代表结果最差
ROC曲线
ROC曲线定义
接受者操作特征(receiver operating characteristic),对每个样本作为正例进行预测,会得到每个样本的概率值(score),然后按照概率值排序,以每个概率值作为阈值,分别计算TPR和FPR,最后将FPR为横轴,TPR为纵轴作图,便得到roc曲线
横轴:负正类率(FPR),即1-特异度 Sensitive
FPR = FP/(TN+FP)
纵轴:真正类率(TPR),即灵敏度(召回率)
TPR = TP/(TP+FN)
我们的目标是让TPR尽可能大,FPR尽可能小,因此理想的模型状态为图中的(0,1)所有正例预测为真正例、所有反例预测为真反例
ROC曲线意义
ROC曲线能很容易的查出任意阈值对学习器的泛化性能影响。
有助于选择最佳的阈值。ROC曲线越靠近左上角,模型的查全率就越高。
可以对不同的学习器比较性能。将各个学习器的ROC曲线绘制到同一坐标中,直观地鉴别优劣,靠近左上角的ROC曲所代表的学习器准确性最高。
AUC面积
(1)在学习器的比较中,若一个学习器的ROC曲线完全被另一个学习器的roc曲线包住,则后面的性能优于前者,如图b,越靠90度方向的越好;
(2)若两个学习器的曲线发生交叉,如图a,则难以判断哪个分类器更优,若需要判断,则可通过roc曲线下面的面积来判断,即AUC面积,面积越大,分类器的效果越好
sklearn的实现代码放在下一篇文章里