Python机器学习线性回归分析实例

2017年8月18日17:58:06 发表评论 2,837

Python机器学习线性回归分析实例

前言

在前面的文章中,我们都是简单的对线性回归模型进行构建,这篇文章我们采用网上下载的数据量比较大的数据来对模型进行构造,最后讲述在线性的情况下如何对模型进行评估。

数据集介绍

下图是该数据集的前10行截图:

Python机器学习线性回归分析实例

我们使用的数据集是一个广告和收入的关系的数据集,其特征实例一共有200条,其中每个实例有三个特征值,其含义分别如下:

  • TV:在电视上广告上的花费(单位是千元

  • Radio:在广播媒体中的广告费用

  • Newspaper:在报纸上投资的广告费用

  • Sales:产品的销售量

数据集的下载地址:[Downlink href='/wp-content/uploads/file/20170818/1503045318704925.rar']点击下载[/Downlink]

读取数据集

这里我们使用pandas来读取数据,并使用seaborn和pyplot绘制成图,代码如下:

这里我们使用pairploat来绘制图片,x_vars代表x坐标参数列,y_var代表y列,这里x_vaes给出了三列,也就是说会绘制出三个子图,结果如下

Python机器学习线性回归分析实例

其实从这个图中我们就可以看出,TV和Sales直线的线性关系比较大,最差的是Newspaper。

使用Pandas构造X和Y并切分

我们将数据按照8:2的比例分成了训练集和测试集。下面就可以构造线性模型了。

构造线性回归模型并进行预测

输出的结果如下:

Python机器学习线性回归分析实例

最终的方程便是y = 2.99 + 0.045*TV + 0.196*Radio -0.003 * Newspaper

方程的解释:TV上的广告每增加1000千元,销售量将增44.6,后面依次类推

线性模型的评估

常见线性回归情况下的模型评估主要从以下三个方面:

  • 平均绝对误差:Python机器学习线性回归分析实例

  • 均方误差:Python机器学习线性回归分析实例

  • 均方根误差:Python机器学习线性回归分析实例

其方法在sklearn的metrics中都有对应,如下:

输出结果如下:

Python机器学习线性回归分析实例

特征值选择

从前面的点图和预测的系数值可以看出,Newspaper这一项和销售量的关系较弱,所以我们考虑将Newspaper这一项的值去掉,重新构造模型测试。

修改X的特征值个数:

重新训练模型后输出结果如下:

Python机器学习线性回归分析实例

把误差和之前对比可以发现,误差确实减小了,所以说,我们将Newspaper取消是对的。

全部代码

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: