找回密码
 立即注册
搜索

【python数据挖掘课程】十八.线性回归及多项式回归分析四个案例分享 ...

aqxu001 2018-10-15 11:49:37 显示全部楼层 阅读模式
一. 线性回归预测Pizza价格案例


1.数据集介绍
本章主要使用线性回归预测Pizza的价格,由于直径大小不同的Pizza,其价格也是不同的。这是一个非常经典的案例,主要包括两个特征——Pizza直径(单位:英寸)和Pizza价格(单位:美元)。假设读者现在去到一家西餐厅,看到Pizza的菜单,现在需要通过机器学习的方法构造一个一元线性回归模型,通过分析匹萨的直径与价格的数据的线性关系,来预测任意直径匹萨的价格。 数据集共十行,包括两个特征,如下表10.1所示。





2.线性回归分析
线性回归基础步骤主要包括:
1.导入数据集,采用列表的形式定义直接和价格两列数据。
2.调用Scikit-learn机器学习包中线性回归模型。
3.调用fit()函数对直径和价格进行训练。
4.调用predice()函数对数据集进行预测。
5.对线性回归算法进行评价。
6.可视化分析并绘制相关图形,直观的呈现算法模型的结果。
线性回归分析的完整代码如下:





通过调用sklearn机器学习包中linear_model子类的LinearRegression线性回归模型,然后fit()函数用来分析模型参数,predict()通过fit()算出模型参数构成的模型,对解释变量进行预测获得其结果。上面的代码输出如下所示:




可以发现直径为12英寸的Pizza价格为14.42美元。同时它生成了一个一元线性回归模型,即:y = a*x + b。其中,y表示响应变量的预测值,这个示例为Pizza的价格预测值;x为因变量,表示Pizza的直径。



3.可视化分析
接下来需要对数据集进行可视化分析,首先需要调用Matplotlib扩展包绘制直径和价格的散点图,代码如下:





输出图形如下所示,其中(x2,y2)是训练后的回归模型进行预测的结果,为一条直线。





二. 线性回归分析波士顿房价案例

1.数据集
波士顿房价数据集(Boston House Price Dataset)包含对房价的预测(以千美元计数),给定的条件是房屋及其相邻房屋的详细信息。该数据集涉及一个回归问题,通过进行线性回归分析可以预测波斯顿房价数据。而且由于Sklearn机器学习包中已经自带了该数据集,故直接引用该数据集,获取其中某两列数据,对其进行分析预测。

该数据集的下载地址为:http://lib.stat.cmu.edu/datasets/boston,也可以从UCI机器学习知识库中下载,每个类的观察值数量是均等的,共有 506 行数据,13 个输入变量和1个输出变量,数据集如下图11.1所示,这些数据从1978年开始统计,涵盖了波士顿不同郊区房屋14中特征信息。





在做数据分析过程中,通常需要将数据集划分为训练集和预测集,这里作者将前406行作为训练集,最后100行作为预测集,划分代码如下:





2.线性回归分析
线性回归过程主要如下:
1.导入数据集,波士顿房价数据。
2.划分数据集为训练集和测试集,采用406和100的比例。
3.导入线性回归模型LinearRegression。
4.对训练集进行训练操作,同时预测数据集结果。
5.可视化画图分析及结果评估。
线性回归分析波士顿房价数据集的代码如下:





对该算法进行评估,线性回归算法可以计算线性方程的系数和截距,即coef_为系数、intercept_为截距。同时可以通过clf.score(x_test,y_test)计算其方差。





输出如下图所示:





三. 随机数据集线性回归分析和三维回归分析案例


1.随机数据集
本章将生成一个随机数据集供您使用,通过该数据集的线性回归分析,您也能了解到相关应用知识。同时,将进一步深入讲解线性回归拟合方程的知识,希望本章对您有所帮助。
随机数生成主要调用Numpy扩展包中的random函数或arange,调用函数arange(0,50,0.2)实现,随机生成0到50个数据,其间隔为0.2。得到X数据集之后,作者随机定义一个函数绘制对应的Y坐标,再调用Matplotlib扩展包可以对数据集进行可视化分析,并绘制相关的散点图。核心代码如下:





输出如下图所示:





接下来需要调用Sklearn机器学习扩展包相关函数进行线性回归分析


2.线性回归
完整代码如下:




输出如下所示:






同时补充一段3D绘制的代码,随机坐标生成后,需要调用mpl_toolkits.mplot3d子类中Axes3D类生成对应的3D图形。使用线性回归对其进行分析过程中,不同于二维可视化分析,三维需要将xx和yy标定成输入变量,zz为输出变量进行训练,再预测其结果。完整代码如下所示:





输出如下图所示:





四. Pizza数据集一元和多元线性回归分析

完整代码如下:





输出如下图所示:





四次方拟合,核心代码如下:






输出如下图所示:








转载至Eastmount

https://blog.csdn.net/eastmount/article/details/78635096






















本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies