python mean函数_python机器学习:回归问题学习模型的评价方法及代码实现

一篇文章写清楚一个问题,关注我,自学python!

解决一个机器学习问题都是从问题建模开始,我们首先要收集问题资料,深入理解问题后将其抽象成机器可预测的问题。那么我们的学习模型表现究竟怎么样,该如何进行评估呢?今天就给大家写一写回归问题的评估方法。

评估指标介绍

1、平均绝对误差 (Mean absolute error,MAE)

是所有单个观测值与算术平均值的偏差的绝对值的平均值,能够更好的反映模型误差的实际情况:

5632f2ff28311827af9018e5b4d0a277.png

平均绝对误差

2、均方误差(Mean Squared Error,MSE)

是所有单个观测值与真值偏差的平方和与观测次数的比值,这个MSE也是线性回归中最常用的损失函数,线性回归过程中尽量让该损失函数最小。那么模型之间的对比也可以以它为标准。

38035c7cea0a66e69c15c550f06d8016.png

均方误差

3、均方根误差(Root Mean Squard Error,RMSE)

这个可以和方差和标准差一块儿类比,标准差是方差的算术平方根。
标准误差是均方误差的算术平方根。
标准差是用来衡量一组数自身的离散程度,而均方根误差是用来衡量观测值同真值之间的偏差,它们的研究对象和研究目的不同,但是计算过程类似。

d4c8c76bdae7d5c35a3b96f00fae865b.png

均方根误差

它的意义在于开个根号后,误差的结果就与数据是一个级别的,可以更好地来描述数据。标准误差对一组测量中的特大或特小误差反映非常敏感,所以,标准误差能够很好地反映出测量的精密度。这正是标准误差在工程测量中广泛被采用的原因。

4、R方(R-squared)

7558fe547c2d7c964a059020c79d26f6.png

R方

在上面式子中:

上面的分子就是我们训练出的模型预测的误差和。

下面的分母就是瞎猜的误差和。(通常取观测值的平均值)

如果R方结果是0,就说明我们的模型跟瞎猜差不多。

如果R方结果是1。就说明我们模型无错误。

一般情况下我们会认为超过0.8的模型拟合优度比较高。

评价指标python实操

现在进行实操,首先,导入数据,训练模型:

wine = pd.read_csv("dataset/winequality.csv", sep=";")wine.head()X = wine.drop('quality', axis = 1)y = wine.qualityfrom sklearn.model_selection import train_test_splitx_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=3)from sklearn.linear_model import LinearRegressionlr = LinearRegression()lr.fit(x_train, y_train)y_pred = lr.predict(x_test)y_pred[:10]

以上代码依次实现了导入数据(请关注后私信获取数据),划分数据集和标签,划分训练集和测试集以及训练线性回归模型,之前文章都有讲过这些步骤。我们训练了一个线性回归模型来预测红酒质量,模型不作为本文重点,重点看模型评价方法。

现在来看模型评价的python实现。

平均绝对误差

from sklearn.metrics import mean_absolute_errormean_absolute_error(y_test, y_pred)
1b307d2120421b4dca70a92127921ec0.png

直接导入mean_absolute_error方法就可以得到模型的平均绝对误差。

均方误差

from sklearn.metrics import mean_squared_errorprint("Mean Squared Error: ",mean_squared_error(y_test, y_pred))
caf9b70b89ce10468fad8a7f6da35f95.png

直接导入mean_squared_error方法就可以得到模型的均方误差。

均方根误差

print("Root Mean Squared Error: ",mean_squared_error(y_test, y_pred, squared=False))
c209181ca36cb743fddf3f2ce27a83ba.png

mean_squared_error方法的squared参数设置为False即可获得均方根误差。

R方

from sklearn.metrics import r2_scorer2_score(y_test, y_pred)
10ef0eb5e2c77806585d1cd549ca79e6.png

直接导入r2_score方法就可以得到模型的R方。

小结

今天给大家介绍了回归模型的评价方法和代码实现,包括平均绝对误差、均方误差、均方根误差、R方。感谢大家耐心看完。发表这些东西的主要目的就是督促自己,希望大家关注评论指出不足,一起进步。内容我都会写的很细,用到的数据集也会在原文中给出链接,你只要按照文章中的代码自己也可以做出一样的结果,一个目的就是零基础也能懂,因为自己就是什么基础没有从零学Python的,加油。

(站外链接发不了,请关注后私信回复“数据链接”获取本头条号所有使用数据)

往期内容:

python机器学习:分类问题学习模型的评价方法及代码实现

python机器学习:如何划分训练集和测试集

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值