一元线性回归决定系数_一元线性回归详解

⼀元线性回归决定系数_⼀元线性回归详解
⼀、前⾔
⼤数据、⼈⼯智能机器学习实战性归纳总结,实例可以直接运⾏。如果您读后感觉总结的有收获请关注我,⽀持我进⼀步为⼤家做贡献,⽀持我就是⽀持科技的发展谢谢。
⼤家在学习机器学习的时候⼤多数都是以⼀元线性回归⼊门,使⽤的是Python⼯具,由于机器学习⼊门⽐较难,很多⼈⼀开始弄不清楚头绪,其实⼀元线性回归在拟合曲线计算回归系数的时候还是有⼀些步骤的,⽐如最⼩⼆乘法,求残差,通过求导求极值。为了是⼤家能够快速看见结果,然后再慢慢的研习⾥⾯的原理,特给⼤家总结此⽂章,⽬的为:
1、了解⼀元线性回归的拟合过程
2、能够使⽤Python实现⼀元线性回归的拟合过程
3、了解⼀元线性模型拟合优度的测量评价
本案例的实验环境为:
1、Python3.6以上版本
2、Python的基本数学库numpy、pandans、matplotlib、sklearn俞灵雨
3、Python的PyCharm开发环境
无助感⼆、案例描述
⼀般来说房屋的售价和⾯积有很⼤的关系,也就是说⾯积是房屋的售价很⼤的⼀个权重,下⾯是⼀个房屋销售的数据如下:
在2000年以前某地区正常来说房屋售价为2000元/平⽅⽶,在以后的时间⾥有可能每个⽉房价稍稍有点浮动,但是浮动不⼤,整体还是近似的处于线性状态,请根据以上数据建⽴线性回归⽅程,并预测8平⽅⽶的售价。
三、⼀元线性回归的⼀个简单实现
1、概述
⼀元线性回归分析预测法,是根据⾃变量x和因变量Y的相关关系,建⽴x与Y的线性回归⽅程进⾏预测的⽅法。
两变量之间的关系
(1)函数关系:当⾃变量取值⼀定时,因变量取值由它唯⼀确定,这是确定关系。
(2)相关关系:当⾃变量取值⼀定时,因变量的取值带有⼀定的随机性,(例⼦:⼀块农⽥的⽔稻产量与施肥量之间的关系)这是不确定关系。
我们主要研究不确定型的函数关系,如收⼊与受教育程度之间的关系,等等问题。 但它们之间存在明显的相互关系(称为相关关系),⼜是不确定的。
使⽤最⼩⼆乘法求解回归系数:
最⼩⼆乘法公式是⼀个数学的公式,在数学上称为曲线拟合,此处所讲最⼩⼆乘法,专指线性回归⽅程!最⼩⼆乘法公式为b=y(平均)-a*x(平均)。
2、⼀元线性回归检验指标:拟合优度
拟合优度就是相关系数的平⽅R^2,R^2最⼤值为1。R^2的值越接近1,说明回归直线对观测值的拟合程度越好;反之,R^2的值越⼩,说明回归直线对观测值的拟合程度越差。r2_score函数是计算 R^{2}
3、⼀元线性回归模型拟合效果的判别:均⽅误差MSE
均⽅误差MSE⽤来检测预测值和真实值之间的偏差,
先给出已经调试通过的源代码:
import numpy as np
from matplotlib import pyplot as plt
from sklearn.linear_model import LinearRegression # x轴数据
x_data = np.arange(7)
# y轴数据
y_data = np.array([2,4,6.09,8,10.1,12.1,14.06]) print(x_data)
print(y_data)
# 转换成sklearn框架能够识别的维度
x_data = x_data[:, np.newaxis]辛普森悖论
y_data = y_data[:, np.newaxis]
# 建⽴模型
model = LinearRegression()
# 开始训练
model.fit(x_data, y_data)
# 斜率 print("coefficients: ", f_)
w = f_[0]
# 截距
print("intercept: ", model.intercept_)
b = model.intercept_
# 测试
x_test = np.array([[7]])
predict = model.predict(x_test)
print("predict: ", predict)
plt.plot(x_data, y_data, "b.")
plt.plot(x_data, model.predict(x_data), "r")
#plt.plot(x_data, b + w * x_data, "r")
plt.show()
下⾯详细说下实现步骤,根据步骤和数据⼤家对照⾃⼰的教材逐步体会原理,消化最⼩⼆乘法等推导步骤:
组织数据
步骤1:组织训练数据
x_data = np.arange(7)
上述数据代表1平⽅⽶、2平⽅⽶...7平⽅⽶
y_data = np.array([2,4,6.09,8,10.1,12.1,14.06])
宠爱十年
步骤2 :组织测试数据
上述数据代表1平⽅⽶售价2000元、2平⽅⽶售价4千元、3平⽅⽶售价6.09元...
为了简单起见,在拟合完毕直线后给出测试数据是1平⽅⽶、2平⽅⽶...7平⽅⽶,8平⽅⽶,即:
x_test = np.array([[7]])压电陶瓷驱动电源
就是预测房价8平⽅⽶的价格是多少
建⽴回归⽅程
通过Python提供的⼀元线性回归⽅法将训练集x_data、y_data来训练模型,如下所⽰:
model = LinearRegression()# 开始训练model.fit(x_data, y_data)
预测房价
将测试数据x_data = np.arange(7)输⼊:
predict = model.predict(x_test)print("predict: ", predict)可以得到房价8平⽶的预测值为:predict:  [[16.10571429]]
拟合优度分析
Python提供的相应的函数为:
民粹
计算我们的拟合优度:
ics import r2_scorey_true = [2, 4, 6, 8,10,12,14]y_pred = [2,4,6.09,8,10.1,12.1,14.06]print(r2_score(y_true, y_pred))
输出结果为:0.9997169642857143
说明我们的线性拟合度还是⼗分不错的。
均⽅误差MSE检验
Python为我们提供了均⽅误差MSE检验的⽅法mean_squared_error(),实现如下:#真实值
y_true = [2, 4, 6, 8,10,12,14]
#预测值
y_pred = [2,4,6.09,8,10.1,12.1,14.06]
ics import mean_squared_error
print(mean_squared_error(y_true,y_pred))
结果为:0.004528571428571414
从结果来看,均⽅误差⾮常⼩,看来拟合的效果还是很理想的。

本文发布于:2024-09-22 23:27:00,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/401010.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:线性   回归   拟合   关系   乘法   学习   数据   步骤
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议