机器学习中的「性能度量」有哪些指标?

1 简介

当你训练一个模型时,不仅需要高效的实验估计方法,还需要具有衡量模型泛化能力的评价标准,即「性能度量」Performance Measure

通常情况下,对于不同的任务有不同的性能度量。本文主要介绍两种常见的任务:「回归」Regression 和「分类」Classification

2 回归任务

回归任务的特征是「输入是连续数据,输出也是连续数据」,比如预测房价的涨跌,输入是时间点,输出是房价。

2.1 均方误差(Mean Squared Error)

均方误差是最常用的一个指标。相对于 MAE,MSE 可以放大偏差较大的值。

$$ MSE = \frac{1}{n} \sum^n_{i=1} (y_i - \hat{y}_i)^2 $$

2.2 均方根误差(Root Mean Squared Error)

$$ RMSE = \sqrt{MSE} = \sqrt{\frac{1}{n} \sum^n_{i=1} (y_i - \hat{y}_i)^2} $$

2.3 平均绝对误差 (Mean Absolute Error)

$$ MAE = \frac{1}{n} \sum^n_{i=1} |y_i - \hat{y}_i| $$

2.4 平均绝对百分比误差 (Mean Absolute Percent Error)

$$ MAPE = \frac{100%}{n} \sum^n_{i=1} |\frac{y_i - \hat{y}_i}{y_i}| $$

2.5 R 方 (R Squared)

$$ RMSE = \sqrt{MSE} = \sqrt{\frac{1}{n} \sum^n_{i=1} (y_i - \hat{y}_i)^2} $$

3 分类任务

这里我们用分类「圆方」两种不同的图形来举例,下图是我随手画的10个图形,从左到右看,前5个是圆形,后5个是方形。

训练数据集

即输入为:

1
2
input_list = ["图形1", "图形2", "图形3", "图形4", "图形5", "图形6", "图形7", "图形8", "图形9", "图形10"]
target_list = ["圆形", "圆形", "圆形", "圆形", "圆形", "方形", "方形", "方形", "方形", "方形"]

我们用一个模型去拟合这个数据集,然后获得一份在数据集上的预测结果,见下方的output_list

1
2
target_list = ["圆形", "圆形", "圆形", "圆形", "圆形", "方形", "方形", "方形", "方形", "方形"]
output_list = ["圆形", "圆形", "圆形", "圆形", "方形", "方形", "方形", "方形", "圆形", "圆形"]

经过对比可以发现,第 5 9 10 位置上的图形都预测错了。

3.1 混淆矩阵 (confusion matrix)

对于二分类问题,有下述矩阵:

真实 \ 预测 正例 反例
正例 TP(真正例) FN(假反例)
反例 FP(假正例) TN(真反例)

TP(真正例):本来是圆形,被预测为圆形。(位置 1 2 3 4)
FN(假反例):本来是圆形,被预测成方形。(位置 5)
FP(假正例):本来是方形,被预测为圆形。(位置 9 10)
TN(真反例):本来是方形,被预测成方形。(位置 6 7 8)

3.2 五个指标

1 准确率 (accuracy)

$$ A = \frac{TP+TN}{TP+FN+FP+TN} $$

准确率就是所有预测对了的个数除以总数,即 7/10 = 70%

2 错误率 (error)

$$ E = \frac{FN+FP}{TP+FN+FP+TN} = 1-A $$

准确率就是所有预测错了的个数除以总数,即 3/10 = 30%

3 精确率 (precision)

又名「查准率」。

$$ P = \frac{TP}{TP+FP} $$

对圆形来说,精确率是所有预测为圆形的中,有多少是真正的圆形,即 4/(4+2) = 67%

4 召回率 (recall)

又名「查全率」。

$$ R = \frac{TP}{TP+FN} $$

对圆形来说,召回率是所有圆形中,有多少圆形被预测出来了,即 4/(3+2) = 80%

5 F1 分数 (F1 score)

对精确率和召回率做一个调和平均。

$$ F1 = \frac{2PR}{P+R} $$

对圆形来说,F1 分数是圆形预测情况的综合评估,即 2*0.6*0.6/(0.6+0.6) = 73%

TODO: 多分类性能度量。

参考

评论