笔记:MAE和R2

平均绝对误差 平均绝对误差(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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值