回归预测常见的评估指标

  1. 平均绝对误差(Mean Absolute Error,MAE)
  2. 均方误差(Mean Squared Error,MSE)
  3. 平均绝对百分误差(Mean Absolute Percentage Error,MAPE)
  4. 均方根误差(Root Mean Squared Error)
  5. R2(R-Square)

<mark>平均绝对误差MAE</mark>

平均绝对误差MAE,其能更好地反映预测值与真实值误差的实际情况,计算公式如下:

<mark>均方误差MSE</mark>

均方误差MSE的计算公式为:

<mark>平均绝对百分误差MAPE</mark>

平均绝对百分误差的计算公式为:

<mark>R2(R-Square)</mark>

R2(R-Square)的公式为残差平方和

总平均值

其中 y ‾ \overline{y} y表示 y y y的平均值
得到 R 2 R^2 R2表达式为:
R 2 = 1 − S S r e s S S t o t = 1 − ∑ ( y i − y ^ i ) 2 ∑ ( y i − y ‾ ) 2 R^{2}=1-\frac{SS_{res}}{SS_{tot}}=1-\frac{\sum\left(y_{i}-\hat{y}_{i}\right)^{2}}{\sum\left(y_{i}-\overline{y}\right)^{2}} R2=1SStotSSres=1(yiy)2(yiy^i)2
R 2 R^2 R2用于度量因变量的变异中可由自变量解释部分所占的比例,取值范围是 0~1, R 2 R^2 R2越接近1,表明回归平方和占总平方和的比例越大,回归线与各观测点越接近,用x的变化来解释y值变化的部分就越多,回归的拟合程度就越好。所以 R 2 R^2 R2也称为拟合优度(Goodness of Fit)的统计量。

y i y_{i} yi表示真实值, y ^ i \hat{y}_{i} y^i表示预测值, y ‾ i \overline{y}_{i} yi表示样本均值。得分越高拟合效果越好。

计算案例

import numpy as np

from sklearn import metrics

# MAPE需要自己实现
def MAPE(y_true,y_pre):
    return np.mean(np.abs((y_pre - y_true)/y_true))

y_true = np.array([1,2,3,4,5,6,7,8,3,4,5,6])
y_pre = np.array([1,2,3,4,5,5,7,8,3,10,5,6])

# MAE
print('MAE:',metrics.mean_absolute_error(y_true, y_pre))
# MSE
print('MSE:',metrics.mean_squared_error(y_true, y_pre))
# MAPE
print('MAPE:',MAPE(y_true,y_pre))
# RMSE
print('RMAE:',np.square(metrics.mean_absolute_error(y_true, y_pre)))

## R2-score
from sklearn.metrics import r2_score
y_true = [3, -0.5, 2, 7]
y_pred = [2.5, 0.0, 2, 8]
print('R2-score:',r2_score(y_true, y_pred))