0%

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_”。


2. 分类模型性能评价指标