| 预测正例 | 预测反例 | |
|---|---|---|
| 真实正例 | TP(真正例) | FN(假反例) |
| 真实反例 | FP(假正例) | TN(真反例) |
-
真正例(True Positive):预测值为1,真实值为1
-
假正例(False Positive):预测值为1,真实值为0
-
真反例(True Negative):预测值为0,真实值为0
-
假反例(False Negative):预测值为0,真实值为1
分类 真实值:1 真实值:0 预测值:1 TP(True Positive) FP(False Positive) 预测值:0 FN(False Negative) TN(True Negative)1.3 关于混淆矩阵使用api接口生成结果的一个注意说明
- 我们利用 sklearn中的 confusion_matrix 函数来得到混淆矩阵,函数原型为:
sklearn.metrics.confusion_matrix(y_true, y_pred, labels=None, sample_weight=None)
-
y_true:样本真实的分类标签列表
-
y_pred:样本预测的分类结果列表
-
labels:类别列表,可用于对类别重新排序或选择类别子集。如果默认,则将y_true 或y_pred 中至少出现一次的类别按排序顺序构成混淆矩阵。
-
sample_weight:样本权重
TN|FP FN|TP
-
注:这个顺序才是api输出的顺序,而不是按照上方混淆矩阵表格那样的顺序
-
api使用的例子见参考链接1,此处不再赘述
2.2 召回率又称查全率: R = T P T P + F N R = frac{TP}{TP+FN} R=TP+FNTP
2.3 F1:精准率和召回率的调和平均 F 1 = 2 ∗ P ∗ R P + R F1 = frac{2 * P * R}{P + R} F1=P+R2∗P∗R
2.4 准确率
A c c u r a c y = 预 测 对 的 样 本 数 样 本 总 数 = T P + T N T P + T N + F P + F N Accuracy = frac{预测对的样本数}{样本总数} = frac{TP + TN}{TP + TN + FP + FN} Accuracy=样本总数预测对的样本数=TP+TN+FP+FNTP+TN
2.5关于精确率,召回率异同之处,此处简单介绍,可以参考链接2-
精准率可以解释为,预测为正例的样本中,有多少是真的正例(你认为的该类样本,有多少猜对了(猜的精确性如何))
-
召回率可以解释为,真实的正例的样本中,有多少被预测出来(该类样本有多少被找出来了(召回了多少))
3 AUC值与ROC曲线 3.1 AUC是ROC曲线的量化指标,即ROC曲线下的面积。AUC值越大越好,即面积曲线下面积越大越好。
-
AUC的意义:随机抽取一对正负样本,AUC是把正样本预测为1的概率大于把负样本预测为1的概率的概率。这句话有点拗口,用公式写就是:
-
求解AUC方法
- ROC曲线横轴FPR,纵轴TPR下面积,反映整体性能,也就是预测结果的好坏(正例在前,反例在后)。
- 此处直接看参考链接,注意使用api的参数问题以及不同api的区别
7
-
KS(Kolmogorov-Smirnov):好坏样本之间累计分布的差值(最大值),用于评估模型的风险区分能力。好坏样本的累计差异越大,模型的风险区分能力越强,KS指标越大。
-
具体KS例子以及评级指标该参考链接中也有
-
正负样本的洛伦兹曲线构成,反映了模型对正负样本的区分能力,大于0.2才有区分能力,接近1更好
- G-Mean是另外一个指标,也能评价不平衡数据的模型表现,其计算公式如下。
对正样本召回率和对负样本召回率相乘再开根号
G − M e a n = R e c a l l ∗ S p e c i f i c i t y = T P T P + F N ∗ T N T N + F P G-Mean = sqrt{Recall * Specificity} \ = sqrt{frac{TP}{TP+FN} * frac{TN}{TN+FP}} G−Mean=Recall∗Specificity =TP+FNTP∗TN+FPTN
- 数据不均衡时(小样本)可以参考的评价指标,正例准确率与负例准确率的综合指标
-
MCC是应用在机器学习中,用以测量二分类的分类性能的指标,该指标考虑了真阳性,真阴性,假阳性和假阴性,通常认为该指标是一个比较均衡的指标,即使是在两类别的样本含量差别很大时,也可以应用它。
-
MCC本质上是一个描述实际分类与预测分类之间的相关系数,它的取值范围为[-1,1],取值为1时表示对受试对象的完美预测,取值为0时表示预测的结果还不如随机预测的结果,-1是指预测分类和实际分类完全不一致。
M C C = T P ∗ T N − F P ∗ F N ( T P + F P ) ( T P + F N ) ( T N + F P ) ( T N + F N ) MCC = frac{TP * TN - FP*FN}{sqrt{(TP+FP)(TP+FN)(TN+FP)(TN+FN)}} MCC=(TP+FP)(TP+FN)(TN+FP)(TN+FN) TP∗TN−FP∗FN
- 描述实际分类与预测分类之间的相关系数,越接近1越好,-1表示与真实结果相反
-
python实现混淆矩阵 - 知乎 (zhihu.com)
-
如何解释召回率与精确率? - 知乎 (zhihu.com)
-
二分类问题常见的评价指标 - 知乎 (zhihu.com)
-
sklearn计算auc的坑----model.predict()和 model.predict_proba()的区别_ODIMAYA的博客-CSDN博客_model.predict_proba
-
模型评价指标—KS_阿黎逸阳的博客-CSDN博客_ks模型评估
-
二分类问题中的评估指标,附代码(超详细)_WGS.的博客-CSDN博客_二分类问题的评价指标
-
最后一个链接近乎涵盖所有的指标,可以多看看,真的很全面



