深度学习-回归问题的评估指标:MAE, MAPE, MSE, RMSE, R2_Score
回归问题常用的评估指标
回归问题常用的评估指标包括:MAE, MAPE, MSE, RMSE, R2_Score等。
这些评价指标基本都在 sklearn 包中都封装好了,可直接调用。
安装 sklearn, 完整的名字是 scikit-learn
。
1 | pip install -U scikit-learn |
metric | formula | method |
---|---|---|
MAE | $\frac{1}{n} \sum_{i=1}^n \vert y_i - \hat{y}_i \vert$ | sklearn.metrics.mean_absolute_error |
MAPE | $\frac{1}{n} \sum_{i=1}^n \frac{\vert y_i - \hat{y}_i \vert }{\vert y_i \vert}$ | sklearn.metrics.mean_absolute_percentage_error |
MSE | $\frac{1}{n} \sum_{i=1}^n (y_i - \hat{y}_i)^2$ | sklearn.metrics.mean_squared_error |
RMSE | $\sqrt{\frac{1}{n} \sum_{i=1}^n (y_i - \hat{y}_i)^2}$ | sklearn.metrics.mean_squared_error |
R2 Score | $1 - \dfrac{\sum_{i=1}^n (y_i - \hat{y}_i)^2} {\sum_{i=1}^n (y_i - \bar{y})^2}$ | sklearn.metrics.r2_score |
注:
- MAPE 在V0.22.2中还不能直接调用,预计会在V0.23中发布;
- 参见 github #15007
- RMSE 可以调用
mean_squared_error
方法实现, 设置squared=False
即可;rmse_score = mean_squared_error(y_test, y_pred, squared=False)
示例
1 | from sklearn.metrics import mean_absolute_error |
PS: 修改 sklearn(0.22.2) 源码, 直接调用 mean_absolute_percentage_error
需要修改两个文件: sklearn/metrics/__init__.py
, sklearn/metrics/_regression.py
sklearn/metrics/__init__.py
, 修改两处。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17## 第 63 行左右
from ._regression import explained_variance_score
from ._regression import max_error
from ._regression import mean_absolute_error
from ._regression import mean_absolute_percentage_error # +++ add MAPE +++
from ._regression import mean_squared_error
from ._regression import mean_squared_log_error
from ._regression import median_absolute_error
# 第 126 行左右
'matthews_corrcoef',
'max_error',
'mean_absolute_error',
'mean_absolute_percentage_error', # +++ add MAPE +++
'mean_squared_error',
'mean_squared_log_error',
'mean_poisson_deviance',sklearn/metrics/_regression.py
, 修改两处
1 | # 第 36 行左右 |
参考 github:#15007