文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用Python进行数据分析——线性回归分析

2023-10-04 19:38

关注

大家好,线性回归是确定两种或两种以上变量之间互相依赖的定量关系的一种统计分析方法。根据自变量的个数,可以将线性回归分为一元线性回归和多元线性回归分析。

一元线性回归:就是只包含一个自变量,且该自变量与因变量之间的关系是线性关系。例如通过广告费这一个自变量来预测销量,就属于一元线性回归分析。

多元线性回归:如果回归分析包含两个或以上的自变量,且每个因变量与自变量之间都是线性关系,,则成为多元线性回归分析;例如通过肥料、灌溉等人工成本来预测产量,就属于多元线性回归。

一、线性回归分析的思路

二、一元线性回归分析

那我们初中学过的一元一次方程y=ax+b来说:就是最简单的一元线性回归,接下来,我们以上图数据为例,假设当人工成本为6600元时,产量为多少?我们下面就这一实际生产问题问题进行一元线性回归分析代码演示。

确定因变量与自变量:

import pandas as pddata= pd.read_excel('D:/shujufenxi/作物表型记录本.xlsx',sheet_name=0,index_col='序号')print(data.head())

我们要进行的是根据已知的6600人工成本预测产量,由此可知,人工成本费为自变量,产量为因变量。

确定线性回归分析的类型:

import pandas as pddata= pd.read_excel('D:/shujufenxi/作物表型记录本.xlsx',sheet_name=0,index_col='序号')print(data.head())# 选中自变量与因变量的数据,x为自变量,y为因变量x=data[['人工成本费(元)']]y=data[['产量(公斤)']]# 确定线性回归分析的类型corr=data.corr()print(corr)

可以看到人工成本与产量之间的相关系数为0.965321,为强相关,随后利用Matplotlib模块进行绘制散点图,代码如下:

# 绘制散点图import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falseplt.scatter(x,y)plt.xlabel('人工成本费(元)')plt.ylabel('产量(公斤)')plt.show()

建立回归分析模型以及检验线性回归分析模型的拟合程度:

#建立回归分析模型from sklearn.linear_model import LinearRegression  # 需下载Scikit-Learn模块,使用LinearRegression()函数建立线性回归分析模型Model=LinearRegression()Model.fit(x,y)#检验线性回归分析模型的拟合程度score=Model.score(x,y)print(score)plt.scatter(x,y)plt.plot(x,Model.predict(x))plt.xlabel('人工成本费(元)')plt.ylabel('产量(公斤)')plt.show()

可以看出模型的评分约为0.93,很接近1,拟合程度还是较高的。

可以看出大多数散点还是比较靠近这条直线的,说明模型很好的捕捉到了数据特征,可以算是恰当拟合。

利用线性回归分析进行预测:

# 预测,也可以进行同时预测多个,如下y=Model.predict([[6600],[15000],[8888]])print(y)

三、多元线性回归分析

下面我们利用此虚拟数据假设当农药成本费、肥料成本费、田间管理成本费分别为3400、2900、3100时的产量为多少,下面我们将进行完整代码演示:

## 确定自变量与因变量import pandas as pddata= pd.read_excel('D:/shujufenxi/作物表型记录本.xlsx',sheet_name=1,index_col='序号')print(data.head())# 选中自变量与因变量的数据,x为自变量,y为因变量x=data[['农药成本费(元)','肥料成本费(元)','田间管理成本费(元)']]y=data[['产量(公斤)']]# 确定线性回归分析的类型——图3corr=data.corr()print(corr)# 绘制散点图——图1import matplotlib.pyplot as pltimport seaborn as snsplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falsesns.pairplot(data,x_vars=['农药成本费(元)','肥料成本费(元)','田间管理成本费(元)'],y_vars='产量(公斤)')plt.show()#建立回归分析模型from sklearn.linear_model import LinearRegression  # 需下载Scikit-Learn模块,使用LinearRegression()函数建立线性回归分析模型Model=LinearRegression()Model.fit(x,y)#检验线性回归分析模型的拟合程度——图3score=Model.score(x,y)print(score)# 绘制拟合成果图——图2sns.pairplot(data,x_vars=['农药成本费(元)','肥料成本费(元)','田间管理成本费(元)'],y_vars='产量(公斤)',kind='reg')# kind参数可添加一条最佳拟合直线和95%的置信带,从而更直观的展示模型的拟合程度plt.show()# 预测,也可以进行同时预测多个,如下——图3y=Model.predict([[3400,2900,3100]])print(y)

以上就是根据此数据所进行的多元线性回归分析以及模型预测;在上面第二个图中,我们从置信带的宽度来看,农药成本费与产量的线性关系较强,肥料成本费、田间管理成本费两者与产量的线性关系则较弱。

本文所讲对模型进行拟合在实际生产中具有重大意义,不仅可以利用已知变量预测未知变量,还能根据拟合结果判断所得数据是否具有生产意义。

来源地址:https://blog.csdn.net/csdn1561168266/article/details/129214694

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯