Evaluation index in ML

评价指标

Posted by biggan on June 6, 2019

评价指标

1. 概述

  • 评价指标,根据模型预测结果真实结果的匹配情况,衡量模型的性能优劣。

  • 评价指标根据问题不同主要分为三大类

    • 分类问题

      Accuracy准确率,Precision精确率,Recall召回率,F

      ROCAUC

    • 回归问题

      平均绝对误差MAE(mean_absolute_error),

      均方误差MSE(mean-squared_error),

      均方根差RMSE

    • 聚类问题

      兰德指数

      互信息

      轮廓系数

2. Accuracy准确率,Precision精确率,Recall召回率,F值

  • 假设只有两类,正类和负类。(多分类也可归纳成两类)

    • 混淆矩阵

      ​ 预测为正 预测为负

      实际为正 TP FN

      实际为负 FP TN

    上述AB模式中,A表示预测是否正确,B表示预测的类别。

    • N — 正类的样本数
    • P — 负类的样本数
    • $FPR=\frac{错误预测为负类的样本数}{负类样本数}=\frac{FP}{N}$(假阳率)
    • $TPR=\frac{正确预测为正类的样本数}{正类样本数}=\frac{TP}{P}$(真阳率)
  • Accuracy(准确率) \(Accuracy=\frac{预测正确的样本数}{总样本数}=\frac{TP+TN}{P+N}\)

  • Precision(精确率) \(Precision=\frac{预测正确的正类样本数}{预测为正类的样本数}=\frac{TP}{TP+FP}\) 表示对关注类别的预测准确率

  • Recall(召回率) \(Recall=\frac{预测正确的正类样本数}{正类的样本数}=\frac{TP}{P}\) 表示对关注类别的预测的完整性

    一般的:

     精确率为预测正确的标签在所有预测出标签中占比,召回率为预测正确的标签在所有应该被预测出来的标签中占比。总之,精确率侧重准确性,召回率侧重完整性

  • Fβ的是精确率和召回率的折中(调和均值),β表示召回率的权重是准确率的β倍。 \(F\beta=\frac{(1+\beta^2)*precision*recall}{(\beta^2precision + recall)}\) F1认为召回率和精确率同等重要 \(F1=\frac{2*precision*recall}{(precision + recall)}\)

3.ROC曲线和AUC

一般用来评价一个二值分类器(binary classifier)的优劣。

  • ROC曲线

    • 横坐标:FPR,纵坐标:TPR

    • 四个特殊点:

      • (0, 1)所有样本预测正确 ;(1, 0)所有样本预测错误
      • (0, 0)所有样本预测为负类;(1, 1)所有样本预测为正类
      • y=x上的点表示随机猜测
    • 画ROC曲线

       给各个样本为正类的概率以及样本实际类别,再给出一个阈值(大于等于阈值为正例,否则为负例)即可计算一次FPR、TPR,得到ROC曲线的一个点。通过改变阈值,得到不同的点,再连接起来即可得到ROC曲线。

  • AUC

     AUC值越大的分类器,正确率越高。

     AUC定义:AUC为ROC曲线下的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。

     AUC解释:AUC值是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分类算法认为正样本的Score值大于负样本Score值的概率就是AUC值。AUC关心的只有正负样本之间的分数高低,而具体的分值则无关紧要。

4.MSE,RMSE,MAE

  • MSE(均方误差) \(\frac{1}{m} \sum_{i=1}^{m}\left(y_{i}-\hat{y}_{i}\right)^{2}\)

  • RMSE(均方根误差)

\[\sqrt{\frac{1}{m} \sum_{i=1}^{m}\left(y_{i}-\hat{y}_{i}\right)^{2}}\]
  • MAE(平均绝对误差) \(\frac{1}{m} \sum_{i=1}^{m}\left|y_{i}-\hat{y_{i}}\right|\)