平均绝对误差 平均绝对误差(Mean Absolute Error,MAE):平均绝对误差,其能更好地反映预测值与真实值
误差的实际情况
# 分别用函数和MAE定义来求解MAE
# coding=utf-8
import numpy as np
from sklearn import metrics
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])
# MAE
print('函数求解:',metrics.mean_absolute_error(y_true, y_pred))
MAE=0
for i in range(len(y_true)):
MAE+=abs(y_true[i]-y_pred[i])
MAE=MAE/len(y_true)
print('根据定义求解:',MAE)
函数求解: 0.4142857142857143
根据定义求解: 0.4142857142857143
R2(R-Square)为残差平方和
## 分别根据函数和定义计算R2
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))
res=0
sumy=0
for i in range(len(y_true)):
res+=(y_true[i]-y_pred[i])*(y_true[i]-y_pred[i])
sumy+=y_true[i]
avry=sumy/len(y_true)
tot=0
for i in y_true:
tot+=(i-avry)*(i-avry)
R2=1-res/tot
print("R2=",R2)
R2-score: 0.9486081370449679
R2= 0.9486081370449679