ML入门-模型性能评价指标
ML入门-模型性能评价指标
前言:一个机器学习模型训练好后,需要采用一些度量准则评价模型预测的效果。根据任务的种类可以分为回归模型评价指标和分类模型评价指标。
1. 回归模型性能评价指标
1.1 常见的 6 种评价指标
(1)开放均方误差(Rooted Mean Squared Error, RMSE):
$
RMSE(y, \hat{y}) = \sqrt {\dfrac {1} {N} \sum^N_{i = 1} (y_i, \hat{y_i})^2}
$
开放的目的在于使得 RMSE 的返回值与 $y$ 的单位一致。
(2)平均绝对值误差(Mean Absolute Error, MAE):
$
MAE(y, \hat{y}) = \dfrac {1} {N} \sum^N_{i = 1} |y_i - \hat{y_i}|
$
(3)绝对误差中值(Median Absolute Error, MedAE):
$
MedAE(y, \hat{y}) = median(|y_1 - \hat{y_1}|, \cdots, |y_N - \hat{y_N}|)
$
相对于均值,中值对噪声点较不敏感。
(4)平均平方 $\log$ 误差(Mean Squared Logarithmic Error, MSLE):
$
MSLE(y, \hat{y}) = \dfrac {1} {N} \sum^N_{i = 1} \left( \log (1 + y_i) - \log (1 + \hat{y_i}) \right)^2
$
当 $y$ 呈指数增长时可以使用,如计数、一年的平均销量、价格等。$1 + y_i$ 与 $1 + \hat{y_i}$ 的目的是为了确保 $\log$ 计算有意义(当 $y_i / \hat{y_i} = 0$ 时,$\log 0$ 无意义)。
(5)$R^2$ 分数($R^2$ Score):
$
\begin{aligned}
& SS_{res}(y, \hat{y}) = \dfrac {1} {N} \sum^N_{i = 1} (y_i - \hat{y_i})^2
\\
& SS_{tot}(y) = \dfrac {1} {N} \sum^N_{i = 1} (y_i - \bar{y})^2
\\
& R^2(y, \hat{y}) = 1 - \dfrac {SS_{res}(y, \hat{y})} {SS_{tot}(y)}
\end{aligned}
$
$R^2$ 分数既考虑了预测值与真实值之间的差异,又考虑了问题本身针织之间的差异,是 Scikit-Learn 线性回归模型的默认评价准则。当 $SS_{res} = 0$ 时,$R^2 = 1$ 为最佳分数,分数越低则模型性能越差,可能为负值。
(6)已解释的访查分数(Explained variance socre):
$
explained_variance(y, \hat{y}) = 1 - \dfrac {Var(y - \hat{y})} {Var \{ y \} }
$
1.2 Scikit-Learn中的评价指标
Scikit-Learn 中有三种评价模型性能的方式,但基本都是通过上述 6 种计算方式实现的。
(1)每个学习器 Estimator 自己的 score
方法,提供一个默认的评估方法(回归为 $R^2$ 分数)。
(2)Metric:sklearn.metrics
模块实现了一些函数,用来评估预测误差。
sklearn.metrics
中的回归评价指标:
① metrics.explained_variance_score(y_true, y_pred)
:Explained variance regression score function
② metrics.mean_absolute_error(y_true, y_pred)
:Mean-Absolute-Error regression loss
③ metrics.mean_squared_error(y_true, y_pred[, ...])
:Mean-Squared-Error regression loss
④ metrics.mean_squared_log_error(y_true, y_pred)
:Mean-Squared-Logarithmic-Error regression loss
⑤ metrics.median_absolute_error(y_true, y_pred)
:Median-Absolute-Error regression loss
⑥ metrics.r2_score(y_true, y_pred[, ...])
:$R^2$ (coefficient of determination) regression score function.
(3)Scoring 参数:使用交叉验证评估模型的工具有 Scoring 参数,与 Metrics 一一对应。
① explained_variance
;metrics.explained_variance_score
② neg_mean_absolute_error
:metrics.mean_absolute_error
③ neg_mean_squared_error
:metrics.mean_squared_error
④ neg_mean_squared_log_error
:metrics.mean_squared_log_error
⑤ neg_median_absolute_error
:metrics.median_absolute_error
⑥ r2
:metrics.r2_score
Scoring 越高代表模型性能越好,其中 explained_variance 和 $R^2$ 本来即越高越好,因此 Scoring 可直接使用。第 ②、③、④、⑤ 个参数取“error”对应 误差 / 损失,因此对 error 取负数“neg_”。