定义

预测值:

$$
\hat{\mathbf{y}}=\left{\hat{y}{1}, \hat{y}{2}, \ldots, \hat{y}_{n}\right}
$$

  1. y_pred = np.array([1.0, 3.3, 2.0, 7.9, 5.5, 6.4, 2.0])

真实值:

$$
\mathbf{y}=\left{y{1}, y{2}, \dots, y_{n}\right}
$$

  1. y_true = np.array([2.0, 3.0, 2.5, 1.0, 4.0, 3.2, 3.0])
  1. import numpy as np
  2. from sklearn import metrics

MSE

均方误差(Mean Square Error)

$$
M S E=\frac{1}{n} \sum_{i=1}{2}
$$

  1. metrics.mean_squared_error(y_true, y_pred)
  2. def MSE(y_true, y_pred):
  3. return np.average((y_true - y_pred) ** 2, axis=0)

RMSE

均方根误差(Root Mean Square Error),与上面的均方误差相比这里只是加了一个跟号。

$$
R M S E=\sqrt{\frac{1}{n} \sum_{i=1}{2}}
$$

  1. np.sqrt(metrics.mean_squared_error(y_true, y_pred))
  2. def RMSE(y_true, y_pred):
  3. return np.sqrt(np.average((y_true - y_pred) ** 2, axis=0))

MAE

平均绝对误差(Mean Absolute Error)

$$
M A E=\frac{1}{n} \sum{i=1}^{n}\left|\hat{y}{i}-y_{i}\right|
$$

  1. metrics.mean_absolute_error(y_true, y_pred)
  2. def MAE(y_true, y_pred):
  3. return np.average(np.abs(y_pred - y_true), axis=0)

MAPE

平均绝对百分比误差(Mean Absolute Percentage Error)

$$
M A P E=\frac{100 %}{n} \sum{i=1}^{n}\left|\frac{\hat{y}{i}-y{i}}{y{i}}\right|
$$

  1. def MAPE(y_true, y_pred):
  2. return np.average(np.abs((y_pred - y_true) / y_true), axis=0) * 100

SMAPE

对称平均绝对百分比误差(Symmetric Mean Absolute Percentage Error)

$$
S M A P E=\frac{100 %}{n} \sum{i=1}^{n} \frac{\left|\hat{y}{i}-y{i}\right|}{\left(\left|\hat{y}{i}\right|+\left|y_{i}\right|\right) / 2}
$$

  1. def SMAPE(y_true, y_pred):
  2. return 2.0 * np.average(np.abs(y_pred - y_true) / (np.abs(y_pred) + np.abs(y_true)), axis=0) * 100