机器学习 | 分类评估指标


相关文章:

机器学习 | 目录

机器学习 | 回归评估指标

1. 分类评估指标

评估指标(Evaluation Matrix):在建立模型后,我们想要知道它的性能如何,因此我们将通过一系列指标来判断一个模型的好坏。

1.1 混淆矩阵 Confusion Matrix

混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用 n n n n n n列的矩阵形式来表示。在人工智能中,混淆矩阵(Confusion Matrix)是误差可视化工具,特别用于监督学习;在无监督学习一般叫做匹配矩阵。

混淆矩阵

  1. 每一列代表了预测类别,每一列的总数表示预测为该类别的数据的数目

  2. 每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的数据实例的数目。每一列中的数值表示真实数据被预测为该类的数目

  3. 每一行之和表示该类别的真实样本数量,每一列之和表示被预测为该类别的样本数量

如下图,第一行第一列中的43表示有43个实际归属第一类的实例被预测为第一类,同理,第一行第二列的2表示有2个实际归属为第一类的实例被错误预测为第二类。

1.1.1 scikit-learn 混淆矩阵函数接口

skearn.metrics.confusion_matrix(
    y_true,   # array, Gound true (correct) target values
    y_pred,  # array, Estimated targets as returned by a classifier
    labels=None,  # array, List of labels to index the matrix.
    sample_weight=None  # array-like of shape = [n_samples], Optional sample weights
)

参数设置:

y_true : array, shape = [n_samples]

Ground truth (correct) target values.

y_pred : array, shape = [n_samples]

Estimated targets as returned by a classifier.

labels : array, shape = [n_classes], optional

List of labels to index the matrix. This may be used to reorder or select a subset of labels. If none is given, those that appear at least once in y_true or y_pred are used in sorted order.

sample_weight : array-like of shape = [n_samples], optional

Sample weights.

返回值:

array, shape = [n_classes, n_classes]

Confusion matrix

在 scikit-learn 中, 计算混淆矩阵用来评估分类的准确度。

按照定义, 混淆矩阵 C C C中的元素 C i , j C_{i,j} Ci,j为真实值的为组 i i i, 而预测为组 j j j的观测数(the number of observations)。

对于二分类任务, 预测结果中:

  • 真阳数(True Positives, TP)为 C 1 , 1 C_{1,1} C1,1
  • 真阴数(True Negatives, TN)为 C 0 , 0 C_{0,0} C0,0
  • 假阳数(False Posiives, FN)为 C 1 , 0 C_{1,0} C1,0
  • 假阴数(False Negatives, FN)为 C 1 , 0 C_{1,0} C1,0

如果 labels 为 None, scikit-learn 会把在出现在 y_true 或 y_pred 中的所有值添加到标记列表 labels 中, 并排好序。[1]

sklearn.metrics.confusion_matrix 官方文档

1.2 真阳性TP、假阳性FP、真阴性TN、假阴性FN

对于二分类任务:

  • 真阳性(True Positives, TP)为真实值为1,预测值为1,即正确预测出的正样本个数
  • 真阴性(True Negatives, TN)为真实值为0,预测值为0,即正确预测出的负样本个数
  • 假阳性(False Posiives, FP)为真实值为0,预测值为1,即错误预测出的正样本个数(即数理统计的第一类错误)
  • 假阴性(False Negatives, FN)为真实值为1,预测值为0,即错误预测出的负样本个数(即数理统计的第二类错误)

概括地来说:

  • 当预测值为1时,体现为阳性;当预测值为0时,体现为阴性
  • 当预测值与真实值相符时,为真;当预测值与真实值相反时,为假

阳性、阴性由来:这两个概念是从医学上引进的,一般来说,阳性(+)是表示疾病或体内生理的变化有一定的结果。相反,化验单或报告单上的阴性(-),则多数基本上否定或排除某种病变的可能性。


例1. 计算真阳性、假阳性、真阴性、假阴性:

如图所示,蓝色为阳性,红色为阴性;我们训练的模型是一条直线来划分这个区域,阳性区域在上,阴性区域在下。

因此直线上方的点预测值为1,其中6个蓝点的真实值为1,2个两红点的真实值为0,因此真阳性个数为6,假阳性个数为2;直线下方的点预测值为0,其中5个红点真实值为0,1个蓝点真实值为1,因此真阴性个数为5,假阴性个数为1。最终混淆矩阵如下所示:

1.2.1 衍生评估指标

由TP、FP、TN、FN四个指标,可以进一步衍生出其他三个常用的评价分类器性能的指标:

  1. 准确率 Accuracy

(1) A c c u r a c y = T P + T N T P + F P + T N + F N Accuracy=\frac{TP+TN}{TP+FP+TN+FN}\tag{1} Accuracy=TP+FP+TN+FNTP+TN(1)

  1. 精确率 Precision

(2) P r e c i s i o n = T P T P + F P Precision=\frac{TP}{TP+FP}\tag{2} Precision=TP+FPTP(2)

  1. 召回率 Recall

(3) R e c a l l = T P T P + F N Recall=\frac{TP}{TP+FN}\tag{3} Recall=TP+FNTP(3)

我们将会在后面对这些指标进行说明。

这是所有的衍生指标:

1.3 准确率 Accuracy

准确率(Accuracy):分类器预测出的正样本中,真实正样本的比例,计算公式如下:

(4) A c c u r a c y = T P + T N T P + F P + T N + F N Accuracy=\frac{TP+TN}{TP+FP+TN+FN}\tag{4} Accuracy=TP+FP+TN+FNTP+TN(4)


例2. 假设一个垃圾邮件过滤器模型,在270封垃圾邮件中,正确分类100封,错误分类170封;在730封正常邮件中,正确分类700封,错误分类30封,计算该分类器的准确率:

A c c u r a c y = T P + T N T P + F P + T N + F N = 100 + 700 100 + 30 + 700 + 170 = 80 % Accuracy=\frac{TP+TN}{TP+FP+TN+FN}=\frac{100+700}{100+30+700+170}=80\%

### 机器学习分类任务的评价指标 #### 准确率 (Accuracy) 准确率是指模型预测正确的样本数占总样本数的比例。它适用于类别分布均衡的数据集,但在类别不均衡的情况下可能无法很好地衡量模型性能[^2]。 计算公式如下: ```python accuracy = (TP + TN) / (TP + FP + FN + TN) ``` --- #### 精确率 (Precision) 精确率又称查准率,用于衡量模型在预测为正类别的样本中实际为正类别的比例。对于关注减少错误报警的应用场景尤为重要[^3]。 计算公式如下: ```python precision = TP / (TP + FP) ``` --- #### 召回率 (Recall) 召回率又称灵敏度或真正率(True Positive Rate, TPR),示实际为正类别的样本中有多少被正确识别出来。在需要尽量捕获所有正样本的任务中更为重要[^2]。 计算公式如下: ```python recall = TP / (TP + FN) ``` --- #### F1分数 (F1-Score) F1分数是精确率召回率的调平均值,综合考虑了两者的现,在二者冲突时提供了一个平衡点。 计算公式如下: ```python f1_score = 2 * ((precision * recall) / (precision + recall)) ``` --- #### ROC曲线与AUC值 ROC曲线通过绘制不同阈值下的假正率(False Positive Rate, FPR)与真正率(True Positive Rate, TPR)的关系来评估分类模型的性能[^1]。理想情况下,ROC曲线应尽可能靠近左上角,明高TPR低FPR[^2]。 - **FPR**: 假正率,即负样本被错分为正样本的概率。 - **TPR**: 真正率,即正样本被正确识别的概率。 AUC(Area Under Curve)是ROC曲线下方的面积,取值范围为0到1。较高的AUC值说明模型具有更好的区分能力[^1]。 --- #### 混淆矩阵 (Confusion Matrix) 混淆矩阵是一个格形式的结果总结工具,清晰展示了模型预测结果与真实标签之间的对应关系。它是计算上述各项指标的基础[^2]。 | | 预测为正类 | 预测为负类 | |---------------|------------|------------| | 实际为正类 | True Positives (TP) | False Negatives (FN) | | 实际为负类 | False Positives (FP) | True Negatives (TN) | --- ### 总结 以上介绍了常见的分类任务评价指标及其意义。每种指标都有特定适用场合,需根据具体应用场景选择合适的组合进行分析。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值