利用python语言对回归指标进行简要讲解。
目录
-
MSE
- 定义:MSE(均方误差)函数一般用来检测模型的预测值和真实值之间的偏差。MSE是真实值与预测值的差值的平方然后求和平均。通过平方的形式便于求导,所以常被用作线性回归的损失函数。
-
RMSE
- 定义:RMSE(均方根误差)在MSE的基础上做平方根衡量观测值与真实值之间的偏差。常用来作为机器学习模型预测结果衡量的标准。
-
MAE
- 定义:MAE(Mean Absolute Error)平均绝对误差。是绝对误差的平均值。可以更好地反映预测值误差的实际情况。
-
MAPE
- 定义:MAPE(平均绝对百分比误差)MAPE 为0%表示完美模型,MAPE 大于 100 %则表示劣质模型。
-
R2-score
- 定义:即决定系数,反映因变量的全部变异能通过回归关系被自变量解释的比例。
-
代码
# coding=utf-8 import numpy as np from sklearn import metrics # MAPE需要自己实现 def mape(y_true, y_pred): return np.mean(np.abs((y_pred - y_true) / y_true)) y_true = np.array([1.0, 5.0, 4.0, 3.0, 2.0, 5.0, -3.0]) y_pred = np.array([1.0, 4.5, 3.8, 3.2, 3.0, 4.8, -2.2]) print('MSE:',metrics.mean_squared_error(y_true, y_pred)) print('RMSE:',np.sqrt(metrics.mean_squared_error(y_true, y_pred))) print('MAE:',metrics.mean_absolute_error(y_true, y_pred)) print('MAPE:',mape(y_true, y_pred)) ## 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))
MSE: 0.2871428571428571 RMSE: 0.5358571238146014 MAE: 0.4142857142857143 MAPE: 0.1461904761904762 R2-score: 0.9486081370449679