当前位置:首页 > 天道酬勤 > 正文内容

线性回归通俗解释(一元线性回归步骤)

张世龙2021年12月20日 07:35天道酬勤860

一、前言

大数据、人工智能机器学习的实战总结、实例可以直接运行。 如果你有阅读总结的成果的话请关注我。 请支持我进一步为大家做出贡献。 支持我就是支持科学技术的发展。 谢谢你。

大家在学习机器学习的时候,大部分都是用单线回归入门。 我在使用Python工具。 机器学习的入门很难,所以很多人一开始没有头绪,其实单线回归在拟合曲线计算回归系数时,有最小二乘法、求残差、求导数等步骤。 为了让大家快速看到结果,然后慢慢研究里面的原理,我特别总结一下这篇文章。 目的如下。

1、了解一元线性回归的拟合过程

2、使用Python可以实现一元线性回归的拟合过程

3、了解一元线性模型适用性的测量评价

这个案例的实验环境如下

1、python版本3.6以上

2、Python的基本数学库编号、pandans、matplotlib、sklearn

3、Python的PyCharm开发环境

二、案例说明

一般来说,房子的售价和面积有很大关系。 也就是说,面积是房屋售价的一大权重。 下面是房子的销售数据。

2000年以前,某地区一般住宅售价为2000元/平方米。 在之后的时间里,每月的房价有可能略有变动,但变动不大,整体上接近线性状态。 请根据以上数据建立线性回归方程,预测8平方米的售价。

三、一元线性回归的简单实现

一、概要

一元线性回归分析预测法是根据自变量x和因子y的相关关系,建立x和y的线性回归方程式进行预测的方法。

两个变量的关系

函数关系)自变量的取值一定时,变量的取值由此唯一决定,因此这是确定关系。

(2)相关关系)自变量取值一定时,变量取值具有一定的随机性,因此)例:一片农田的水稻产量与施肥量的关系)这是不确定的关系。

我们主要研究不确定型的函数关系,如收入和教育水平的关系等问题。 但是,它们之间有明显的相互关联,而且不确定。

使用最小二乘法计算回归系数:

最小二乘法公式是数学公式,在数学上称为曲线拟合。 这里论述最小二乘法,专门指线性回归方程! 最小二乘法的公式是b=y (平均(-a*x )平均)。

2、一元线性回归检验指标:符合性

拟合度为相关系数的平方r ̄2,r ̄2的最大值为1。 R^2的值越接近1,表示回归直线与观测值的拟合越好;相反,R^2的值越小,表示回归直线与观测值的拟合越差。 r2_积分函数计算R^{2}

3、一元线性回归模型拟合效果的判别:均方误差MSE

均方根误差MSE用于检测预测值与真值偏差,

首先列出通过调试的源代码。

导入编号为

frommatplotlibimportpyplotasplt

froms klearn.linear _ modelimportlinearregression

# x轴数据

x _ data=国家安全委员会(7) )。

# y轴数据

y _ data=NP.array ([ 2,4,6.09,8,10.1,12.1,14.06 ]

打印(x _数据)是

打印(y _ data )是指

转换为sklearn框架可以识别的维

x_data=x_data[:新轴]

y_data=y_data[:新轴]

# #模型的制作

model=线性注册(

# #开始培训

model.fit (x _数据,y _数据) )。

# #斜率print(coefficients: )、model.coef_ ) )。

w=模型. coef _ [0]

# #切片

打印(英特尔迅驰: )、模型.英特尔迅驰_ ) )。

b=模型.交互_

# #测试

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提供的相应的函数为:

sklearn.metrics.r2_score(y_true, y_pred, sample_weight=None, multioutput=’uniform_average’)

计算我们的拟合优度:

from sklearn.metrics import r2_score y_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]

from sklearn.metrics import mean_squared_error

print(mean_squared_error(y_true,y_pred))

结果为:0.004528571428571414

从结果来看,均方误差非常小,看来拟合的效果还是很理想的。

扫描二维码推送至手机访问。

版权声明:本文由花开半夏のブログ发布,如需转载请注明出处。

本文链接:https://www.zhangshilong.cn/work/25483.html

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。