当前位置:   article > 正文

二分类问题的性能指标【python,机器学习,算法】

二分类问题的性能指标【python,机器学习,算法】

在这里,我们将讨论各种性能指标,这些指标可用于评估分类问题的预测。

混淆矩阵

这是衡量分类问题性能的最简单方法。混淆矩阵可以用一个二位表表示:

actual_1actual_0
predict_1TPFP
predict_0FNTN

与混淆矩阵相关的术语解释如下:

  • 正值(TP):数据的实际分类和预测分类都是 1.
  • 真阴值(TN):数据的实际分类和预测分类都是 0.
  • 假阳值(FP):数据的实际分类是 0,但和预测分类是 1.
  • 假阴值(FN):数据的实际分类是 1,但和预测分类是 0.

分类的准确度

即正确预测的比例值。公式如下:
a c c u r a c y = T P + T N T P + T N + F P + F N accuracy=\frac{TP+TN}{TP+TN+FP+FN} accuracy=TP+TN+FP+FNTP+TN

分类报告

  1. 分类的精度(Precision)

    • 定义:指被正确预测为正类的样本数与所有被预测为正类的样本数之比。
    • 公式: T P T P + F P \frac{TP}{TP+FP} TP+FPTP
  2. 召回率(Recall)

    • 也叫灵敏度(sensitivity),或者 TPR(True positive Rate)真正率。
    • 定义:指被正确预测为正类的样本数与所有实际为正类的样本数之比。
    • 公式: T P F N + T P \frac{TP}{FN+TP} FN+TPTP
  3. 特异性率(Specificity)

    • 定义:指被正确预测为负类的样本数与实际为负类的样本数之比。
    • 公式: s p e c i f i c i t y = F N F N + F P specificity=\frac{FN}{FN+FP} specificity=FN+FPFN
  4. 假阳率

    • 定义:1 - 特异性率。
    • 公式: F P R = F P F N + F P FPR=\frac{FP}{FN+FP} FPR=FN+FPFP
  5. 支持(Support)

    • 定义:每类目标值中真实响应的样本数,即每个类别中的实际样本数。
    • 公式: s u p p o r t = T P + F N support=TP+FN support=TP+FN s u p p o r t = T N + F P support=TN+FP support=TN+FP
  6. F1 得分

    • 定义:是精确度和召回率的调和平均值,它综合考虑了精确度和召回率的重要性。F1分数的值介于 0 和 1 之间,值越高表示模型的性能越好。
    • 公式: F 1 _ s c o r e = 2 ∗ p r e c i s i o n ∗ r e c a l l p r e c i s i o n + r e c a l l F1\_score=\frac{2*precision*recall}{precision+recall} F1_score=precision+recall2precisionrecall
  7. AUC-ROC(Area Under Receiver Operation Characteristic Curve)

    • 定义:ROC曲线通过绘制不同的分类阈值下,真正例率(True Positive Rate, TPR)与假正例率(False Positive Rate, FPR)之间的关系来评估分类器的性能。AUC-ROC 就是 ROC 曲线下的面积,其值范围从0 到 1。
    • ROC 曲线:横坐标表示 FPR,纵坐标表示 TPR。
    • 性能指示:AUC-ROC值越大,表明分类器的性能越好。理想情况下,完美分类器的AUC-ROC为1,表示在所有阈值下都能完美区分正负例;而随机分类的AUC-ROC接近0.5。
    • 概率解释:AUC可以被解释为,在随机抽取一个正样本和一个负样本的情况下,分类器将正样本排在负样本前面的概率。因此,AUC值反映了模型对实例的排序能力。
    • 优势:AUC-ROC的一个主要优点是它不依赖于特定的分类阈值,因此在阈值选择上更加稳健。此外,它在类别不平衡的数据集上仍然有效,不会因为某类样本数量远超另一类而受到影响。
    • 计算与解读:计算AUC-ROC通常涉及对多个阈值下的TPR和FPR进行积分,但在实际应用中通常采用数值积分或其他高效算法。AUC接近1表示分类器几乎总是正确地将正例排在负例之前;接近0.5表示分类器无异于随机猜测;小于0.5则意味着分类器的性能还不如随机猜测。
  8. 对数损失(Log Loss)

    • 定义:评估二分类问题中预测概率与实际标签相符程度的一种损失函数,也被称为交叉熵损失(Cross-Entropy Loss)。对于一个二分类问题,给定一个样本的真实标签 y   ( y ∈ { 0 , 1 } , 其中 0 表示负类, 1 表示正类 ) 。 y\ (y\in \{0,1\},其中 0 表示负类,1 表示正类)。 y (y{0,1},其中0表示负类,1表示正类)模型预测该样本为正类的概率 p
    • 公式: L ( y , p ) = − [ y ⋅ l o g ( p ) + ( 1 − y ) ⋅ l o g ( 1 − p ) ] L(y,p)=−[y⋅log(p)+(1−y)⋅log(1−p)] L(y,p)=[ylog(p)+(1y)log(1p)], 对所有样本的 L 取平均值即可得到对数损失值。

下面是计算这些性能的指标的简单示例:

from sklearn.metrics import accuracy_score
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
from sklearn.metrics import log_loss
from sklearn.metrics import roc_auc_score

X_actual = [1, 1, 0, 1, 0, 0, 1, 0, 0, 0]
Y_predic = [1, 0, 1, 1, 1, 0, 1, 1, 0, 0]
results = confusion_matrix(X_actual, Y_predic)
print('Confusion Matrix :')
print(results)
print('Accuracy Score is', accuracy_score(X_actual, Y_predic))
print('Classification Report : ')
print(classification_report(X_actual, Y_predic))
print('AUC-ROC:', roc_auc_score(X_actual, Y_predic))
print('LOGLOSS Value is', log_loss(X_actual, Y_predic))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/776395
推荐阅读
相关标签
  

闽ICP备14008679号