机器学习 | 回归评估指标


相关文章:

机器学习 | 目录

机器学习 | 分类评估指标

1. 回归评估指标

1.1 平均绝对误差 MAE

MAE:(Mean Absolute Error)平均绝对误差,从图形上看,MAE 就相当于将数据点与拟合之间之间的距离绝对值之和。

(1) M A E = 1 m ∑ i = 1 m ∣ y ( i ) − y ^ ( i ) ∣ MAE=\frac{1}{m}\sum_{i=1}^m|y^{(i)}-\hat{y}^{(i)}| \tag{1} MAE=m1i=1my(i)y^(i)(1)

MAE 缺点 :绝对值函数是不可微分的,这不利于使用诸如梯度下降方法,因此我们将使用更常见的 MSE 均方误差。

1.1.1 Sklearn 计算 MAE

from sklearn.metrics import mean_absolute_error
from sklearn.linear_model import LinearRegression

classifier = LinerRegression()
classifier.fit(X, y)

guesses = classifier.predict(X)

error = mean_absolute_error(y, guesses)

1.2 均方误差 MSE

MSE:(Mean Squared Error)均方误差,从图形上看,为数据点到拟合直线之间的距离的平方。

(2) M S E = 1 m ∑ i = 1 m ( y ( i ) − y ^ ( i ) ) 2 MSE=\frac{1}{m}\sum_{i=1}^m(y^{(i)}-\hat{y}^{(i)})^2 \tag{2} MSE=m1i=1m(y(i)y^(i))2(2)

MSE 和 MAE 有局限性:同一个算法模型,解决不同的问题,不能体现此模型针对不同问题所表现的优劣。因为不同实际应用中,数据的量纲不同,无法直接比较预测值,因此无法判断模型更适合预测哪个问题,因此我们将使用衡量线性回归最好的指标: R 2 R^2 R2[1]

1.2.1 Sklearn 计算 MSE

from sklearn.metrics import mean_squared_error
from sklearn.linear_model import LinearRegression

classifier = LinerRegression()
classifier.fit(X, y)

guesses = classifier.predict(X)

error = mean_squared_error(y, guesses)

1.3 判定系数 R^2

为了拟合一组数据,最简单的方法就是取这组数据的均值并作直线,已知这个简单模型的 MSE 大于线性回归的 MSE ,然而大多少呢?因此类似于假设检验的检验统计量,我们将线性回顾的 MSE 除以简单模型的 MSE,用1减去这个分数,就得到了 R 2 R^2 R2 :

(3) R 2 = 1 − ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) 2 ∑ i = 1 m ( y ˉ − y ( i ) ) 2 R^2=1-\frac{\sum_{i=1}^m(\hat{y}^{(i)}-y^{(i)})^2}{\sum_{i=1}^m(\bar{y}-y^{(i)})^2} \tag{3} R2=1i=1m(yˉy(i))2i=1m(y^(i)y(i))2(3)

(4) = 1 − ( ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) 2 ) / m ( ∑ i = 1 m ( y i − y ˉ ) 2 ) / m \quad\quad\quad=1-\frac{(\sum_{i=1}^m(\hat{y}^{(i)}-y^{(i)})^2)/m}{(\sum_{i=1}^m(y^{i}-\bar{y})^2)/m} \tag{4} =1(i=1m(yiyˉ)2)/m(i=1m(y^(i)y(i))2)/m(4)

(5) = 1 − M S E ( y ^ , y ) V a r ( y ) =1-\frac{MSE(\hat{y}, y)}{Var(y)} \tag{5} =1Var(y)MSE(y^,y)(5)

  • R 2 ∈ [ − ∞ , 1 ] R^2\in [-\infty,1] R2[,1]
  1. 如果这个回归模型不太好,则两个 MSE 将很接近,则 R 2 R^2 R2将趋于0;

  2. 如果这个回归模型很好,则回归模型的 MSE 应比简单模型的 MSE 小得多,因此 R 2 R^2 R2将趋于1

  3. R 2 ≤ 0 R^2 \le 0 R20,则说明这个回归模型还不如简单模型(很可能数据不存在线性关系)。

  4. 因此, R 2 R^2 R2越接近于1,则说明回归模型越好; R 2 R^2 R2越接近于0,则说明回归模型越不好。

1.3.1 Sklearn 计算 R^2

from sklearn.metrics import r2_score

y_true = [1, 2, 4]
y_pred = [1.3, 2.5, 3.7]

r2_score(y_true, y_pred)
0.9078571428571429

参考资料

[1] Volcano!.机器学习:衡量线性回归法的指标(MSE、RMSE、MAE、R Squared)[EB/OL].https://www.cnblogs.com/volcao/p/9104183.html, 2018-05-29.

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值