机器学习中的「性能度量」有哪些指标?
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 | input_list = ["图形1", "图形2", "图形3", "图形4", "图形5", "图形6", "图形7", "图形8", "图形9", "图形10"] |
我们用一个模型去拟合这个数据集,然后获得一份在数据集上的预测结果,见下方的output_list
:
1 | target_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%
。
4 多分类
预览
Micro Precision = Micro Recall = Micro F1 Score = Accuracy
4.1 Micro F1 Score
不区分类别,总体算 F1。
4.2 Macro F1 Score
对每一类分布算 F1,然后求均值。
4.3 Weighted F1 Score
对每一类分布算 F1,然后求加权均值。
5 其他
5.1 向量的相似度
5.1.1 Euclidean Distance
$$ dist(x, y) = \sqrt{\sum\limits_{i=1}^d (x_i - y_i)^2} $$
假设 $ x = [1, 2, 3]; y = [4, 5, 6] $,则:
$$ dist(x, y) = \sqrt{(1-4)^2+(2-5)^2+(3-6)^2} ≈ 5.1962 $$
5.1.2 Cosine Similarity
$$ \cos(x, y) = \frac{x·y}{|x||y|} = \frac{\sum\limits_{i=1}^d x_i y_i}{\sqrt{\sum\limits_{i=1}^d x_i^2} \sqrt{\sum\limits_{i=1}^d y_i^2}} $$
假设 $ x = [1, 2, 3]; y = [4, 5, 6] $,则:
$$ \cos(x, y) = \frac{1*4+2*5+3*6}{\sqrt{1^2+2^2+3^2}*\sqrt{4^2+5^2+6^2}} ≈ 0.9746 $$
6 参考
机器学习中的「性能度量」有哪些指标?
https://blog.ailln.com/v2ai/2018/07/09/machine-learning/1-performance/