乐趣区

关于机器学习:机器学习分类算法评估指标

分类算法评估指标

精度(Accuracy)

即正确预测的正反例数 / 预测总数

对于样例集 D, 分类错误率定义为

$$
E(f ; D)=\frac{1}{m} \sum_{i=1}^{m} \mathbb{I}\left(f\left(\boldsymbol{x}_{i}\right) \neq y_{i}\right)
$$

精度则定义为

$$
\begin{aligned}
\operatorname{acc}(f ; D) &=\frac{1}{m} \sum_{i=1}^{m} \mathbb{I}\left(f\left(\boldsymbol{x}_{i}\right)=y_{i}\right) \\
&=1-E(f ; D)
\end{aligned}
$$

  • 对于样本类别数量重大不平衡的状况(skewed) 不能用精度指标来掂量

    例如:有 A 类 1000 个,B 类 5 个,如果我把这 1005 个样本都预测成 A 类,正确率 =1000/1005=99.5%

  • 对于有倾向性的问题,往往不能用精度指标来掂量

    例如:判断这个病人是不是病危,如果不是病危错误判断为病危,那只是损失一点医务人员的工夫和精力,如果是把病危的人判断为非病危状态,那损失的就是一条人命

对于以上两种状况,单纯依据 Accuracy 来掂量算法的优劣曾经生效,这个时候就须要对指标变量的实在值和预测值做更深刻的剖析

混同矩阵(confusion matrix)

对于二分类问题,可将样例依据其实在类别与学习器预测类别的组合划分为

  • 真正例(True Positive)
  • 假正例(False Positive)
  • 真反例(True Negative)
  • 假反例(False Negative)

分类后果的混同矩阵如下

预测值 0 预测值 1
实在值 0 TN FP
实在值 1 FN TP

精准率(precision)

$$\text {precision}=\frac{T P}{T P+F P}$$

精准率就是预测为正例的那些数据里预测正确的数据个数

召回率(recall)

$$\text {recall}=\frac{T P}{T P+F N}$$

召回率就是实在为正例的那些数据里预测正确的数据个数

精准率和查全率是一对矛盾的度量,一般来说,精准率高时,召回率则偏低;而召回率高时,精准率则偏低

F1 Score

F1 Score 同时关注精准率和召回率,是 precision 和 recall 的和谐平均值

它的值更靠近于 Precision 与 Recall 中较小的值

$$
\frac{1}{F 1}=\frac{1}{2}\left(\frac{1}{\text {precision}}+\frac{1}{\text {recall}}\right)
$$

$$
F 1=\frac{2 \cdot \text {precision} \cdot \text {recall}}{\text {precision}+\text {recall}}
$$

PR 曲线

依据学习器的预测后果对样例进行排序, 排在后面的是学习器认为“最可能”是正例的样本, 排在最初的则是学习器认为“最 不可能”是正例的样本. 按此程序一一把样本作为正例进行预测, 则每次能够计算出以后的精准率、召回率

以精准率为纵轴、召回率为横轴作图, 就失去了精准率 - 召回率曲线, 简称“P- R 曲线”,显示该曲线的图称为“P- R 图”

与 ROC 曲线左上凸成果好不同的是,PR 曲线是右上凸成果越好

若一个学习器的 P - R 曲线被另一个学习器的曲线齐全包住,则可断言后者的性能优于前者

ROC 曲线

ROC(Receiver Operating Characteristic) 受试者工作个性曲线

True Postitve Rate(真正例率):正样本中被预测对比例

$$\text {TPR}=\frac{TP}{TP+FN}$$

False Positive Rate(假正例率):负样本被预测错的比例

$$\text {FPR}=\frac{FP}{TN+FP}$$

ROC 是一个以 TPR 为纵坐标,FPR 为横坐标结构进去的一幅图

在 ROC 空间,ROC 曲线越凸向左上方向成果越好,因为这阐明准确率高且覆盖率大

进行学习器的比拟时, 与 P-R 图类似, 若一个学习器的 ROC 曲线被另一 个学习器的曲线齐全“包住”, 则可断言后者的性能优于前者; 若两个学习器的 ROC 曲线产生穿插, 则难以一般性地断言两者熟优熟劣. 此时如果肯定要进行比拟, 则较为正当的判据是比拟 ROC 曲线下的面积, 即 AUC

AUC

AUC(Area Under Curve)是一种模型分类指标,且仅仅是二分类模型的评估指标

AUC 值为 ROC 曲线所笼罩的区域面积,显然,AUC 越大,分类器分类成果越好

AUC 的物理意义正样本的预测后果大于负样本的预测后果的概率。所以 AUC 反馈的是分类器对样本的排序能力。另外值得注意的是,AUC 对样本类别是否平衡并不敏感,这也是不平衡样本通常用 AUC 评估分类器性能的一个起因

参考

机器学习评估指标

机器学习 - 周志华

回顾及总结 – 评估指标(分类指标 )

退出移动版