预测值:
$$ \hat{\mathbf{y}}=\left{\hat{y}{1}, \hat{y}{2}, \ldots, \hat{y}_{n}\right} $$
y_pred = np.array([1.0, 3.3, 2.0, 7.9, 5.5, 6.4, 2.0])
真实值:
y_true = np.array([2.0, 3.0, 2.5, 1.0, 4.0, 3.2, 3.0])
import numpy as np
from sklearn import metrics
均方误差(Mean Square Error)
$$ M S E=\frac{1}{n} \sum_{i=1}^{n}\left(\hat{y}{i}-y{i}\right)^{2} $$
metrics.mean_squared_error(y_true, y_pred)
def MSE(y_true, y_pred):
return np.average((y_true - y_pred) ** 2, axis=0)
均方根误差(Root Mean Square Error),与上面的均方误差相比这里只是加了一个跟号。
$$ R M S E=\sqrt{\frac{1}{n} \sum_{i=1}^{n}\left(\hat{y}{i}-y{i}\right)^{2}} $$
np.sqrt(metrics.mean_squared_error(y_true, y_pred))
def RMSE(y_true, y_pred):
return np.sqrt(np.average((y_true - y_pred) ** 2, axis=0))
平均绝对误差(Mean Absolute Error)
$$ M A E=\frac{1}{n} \sum_{i=1}^{n}\left|\hat{y}{i}-y{i}\right| $$
metrics.mean_absolute_error(y_true, y_pred)
def MAE(y_true, y_pred):
return np.average(np.abs(y_pred - y_true), axis=0)
平均绝对百分比误差(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| $$
def MAPE(y_true, y_pred):
return np.average(np.abs((y_pred - y_true) / y_true), axis=0) * 100
对称平均绝对百分比误差(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} $$
def SMAPE(y_true, y_pred):
return 2.0 * np.average(np.abs(y_pred - y_true) / (np.abs(y_pred) + np.abs(y_true)), axis=0) * 100