您的位置:首页 > 编程语言 > Python开发

简单数据预测—使用Python训练回归模型并进行预测(转自蓝鲸网站分析博客)

2017-03-27 09:28 1256 查看


使用Python训练回归模型并进行预测

回归分析是一种常见的统计方法,用于确定不同变量间的相互关系。在Excel中可以通过数据分析菜单中的回归功能快速完成。本篇文章将介绍在python中使用机器学习库sklearn建立简单回归模型的过程。





准备工作

首先是开始前的准备工作,在创建回归模型的过程中我们需要使用以下几个库文件,他们分别为sklearn库,numpy库,pandas库和matplotlib库。sklearn库用于计算线性回归模型中的关键参数,并对模型进行检验。numpy和pandas库用于数据导入,创建数据表和一些基础的计算工作。matplotlib库用于绘制散点图。

读取并查看数据表

准备工作完成后,开始读取数据,这里我们使用了一组每日广告成本和点击量的数据。将这组数据读取到python中并取名为cost_and_click。通过head函数查看数据表中前5行的内容。以下是数据读取和查看的代码和结果。




设置模型的自变量和因变量

在cost_and_click数据表中,我们将广告成本cost设置为自变量X,将广告点击量click设置为因变量Y。希望通过回归模型发现广告成本对于广告点击量的影响,以及两者间的关系。下面我们将X设置为cost,Y设置为click。并通过shape函数查看了两个变量的行数,共25行,这是我们完整数据表的行数。




绘制散点图

在设置好自变量X和因变量Y后,为了更清楚的看到两者间的关系,我们先使用散点图进行观察,下面是散点图的绘制过程,其中X轴为广告成本数据,Y轴为广告点击量数据。

从散点图中可以看出广告点击量随着广告成本的增加而提升。两者究竟有多强的联系,以及具体的关系如何,我们需要从回归模型中找到答案。




将数据分割为训练集和测试集

原始数据中我们共记录到25天的广告成本和点击量数据。将这25条数据分为两部分,一部分作为训练集创建回归模型,另一部分作为测试集对回归模型的结果进行检验。下面是具体的数据分组代码,使用随机方式从25条记录中抽取40%作为测试集,另外60%作为训练集数据。

使用shape函数对训练集的数据行数进行查看,共有15行。这15行数据将被用于建立回归模型。




代入线性回归模型

将训练集数据代入到线性回归模型中,以计算关键的参数值。下面是具体的代码和结果。




计算模型的关键参数

回归模型依据自变量的数量可以分为一元回归模型和多元回归模型,这里我们只有一个自变量X,因此是一元回归模型。其中斜率b1和截距b0是我们要求的关键参数值。





首先计算出回归模型中的斜率值,以下是具体的代码和结果。





其次计算出回归模型的截距,以下是具体的代码和结果。





除此之外,对于回归模型来说还需要计算判定系数,也就是R平方,用以说明自变量对因变量变化的解释度。以下是具体的代码和计算结果。





有了前面的斜率和截距后,就可以描绘出广告成本与广告点击量之间的关系了,并且可以通过这种关系来对广告点击量的结果进行预测,下面我们在回归模型中将广告成本设置为20000元,经过计算获得预测的广告点击量为1993次。这个预测结果准确吗?我们还需要对回归模型进行评估。




使用测试集评估模型

评估回归模型的方法就是使用测试集数据,将测试集中的自变量代入到回归模型中,将结果与测试集的因变量进行对比,评估模型的准确性。下面我们将测试集中的自变量代入回归模型,并列出了所有的计算结果。





同时我们也列出了测试集中因变量。通过对比可以看到两组数据间的差异,例如第一组数据回归模型的计算结果796,测试集中的因变量736。以及第三组数据908和991。有些数据回归模型的结果大于测试集的数据,而另一些则可能小于测试集的数据。





为了衡量回归模型的计算结果与测试集中因变量的数据差异,我们使用误差平方和对两者的差异进行评估。以下是误差平方和的计算公式。为了防止两组数据间差异的正负相互抵消,取平方和。





这里需要说明的是误差平方和指标并不能说明回归模型的结果与测试集数据间的差异大小,它只能用来进行模型间准确率的对比。以下是计算误差平方和的代码和结果。





Read more: http://bluewhale.cc/2016-09-02/python-linear-regression-in-scikit-learn.html#ixzz4cU9ST86q
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐