线性回归分析是数据挖掘中一种非常重要的方法。相信大家在高中或者大学之前都学过线性回归的概念。在统计学中,线性回归是一种回归分析,它使用称为线性回归方程的最小二乘函数来模拟一个或多个自变量和因变量之间的关系。听起来有点复杂。简单来说,就是看一组零散的数据之间有没有相关性。线性回归分析涉及的数学理论知识比较复杂。本文不涉及这些数学理论知识,只介绍应用场景和制作方法。请随意吃。
一、应用场景:
在开始之前,让我们了解一下线性回归分析的用途。线性回归分析在日常工作中应用广泛。通过线性回归,我们可以用模型来描述两组数据之间是否存在相关性。比如在分析销售数据时,往往要判断广告费和销售额的关系,评估广告费对销售额起到了多大的作用,公司是否应该增加广告费。如果他们未来投入一定的广告费,能预测多少销量……这些问题都可以用线性回归分析来回答。
只要有两组以上的数据,我们就可以用线性回归来检验。接下来,我用Python详细描述了线性回归分析的方法和过程,力求用最简单的语言带大家走进数据挖掘的神秘之门。
二、Python实现过程:
步骤1:数据导入
首先要做的是把本地的EXCEL或者CSV文件读入Python。我们可以参考熊猫图书馆阅读数据:
阅读成功后,让我们打印一下,看看数据是否与EXCEL中的一致:
第二步:计算相关系数
就像我们上面说的,只要有两组数据,就可以检验是否有相关性。在数学中,通常用皮尔逊相关系数来检验。该值越接近1,两组数据就越相关。我们可以使用corr的功能来测试广告费和销售额:
接下来,我们打印data1,可以看到相关系数已经计算出来了,达到了0.93,非常接近1,说明这两组数据的相关性非常高:
第三步:画画
为了更直观地呈现这两组数据,我们可以画一个散点图。这时,我们应该介绍另一个库:matplotlib。首先将广告费设置为X轴,销售额设置为Y轴,然后使用plot函数绘制图片,最后使用show呈现图表:
打印出来,我们来看看图的效果。从图中我们可以看到,这张散点图中的所有点基本都是直线排列的,拟合度非常接近,这说明广告费用与销售额是正相关的,广告费用越多,销售额就会增加,这也为上面计算的相关系数提供了非常好的证据:
第四步:建立线性回归模型
线性回归的方程可以用公式y=ks+b表示,其中x为自变量,y为因变量,k为斜率,b为直线在轴上的截距。接下来,我们可以为上述数据建立一个线性回归模型。在这里,我们将参考sklearn库,它主要用于机器学习。首先定义一个LinearRegression对象,然后用拟合函数训练x和y的模型,最后输出两个数据,一个是coef_,表示k值,另一个是intercept_,表示b值:
输出数据如下,k为17.3,b为291.9:
这里我们可以检查模型的拟合程度,这里我们可以使用评分函数来验证。这意味着该值越接近1,该模型的拟合度越好:
计算结果为0.879,表明该模型具有很好的拟合度和很高的可靠性,即可以投入实际应用:
第五步:数据预测
从上面的步骤中,我们知道了K和b的值,只要有X的值,就可以计算出y的值,通常我们可以用这个原理来预测数据。在这里,您可以使用预测函数访问参数来预测数据。例如,让我们看看当广告费为20万时,预期销售额是多少:
最终销售数字为638万:
三.后续建议
从python的实现过程来看,虽然整个线性回归分析可以通过编写代码完美实现,但毕竟大部分小伙伴都没有接触过这种编程语言,所以用python可能很难做到。那么有没有更简洁的方法呢?答案是肯定的。现在我将尝试使用smartbi简化上述过程。
进入数据挖掘界面后,可以看到左侧工具栏上有很多组件,是ETL工作界面。ETL广泛应用于数据清洗,可以有条不紊地管理许多复杂、不规则的数据源。如果把ETL和数据挖掘结合起来,数据分析的效率会大大提高。
第一步是将数据源读入ETL接口。我们可以拖拽组件EXCEL文件,读取上述广告费用的EXCEL文件:
如果EXCEL文件中有多个工作表,请拖放读取Excel工作表的组件并读取您的目标工作表:
阅读后,可以先预览数据源:
我们先算一下如何计算广告费和销售额的相关系数。在统计分析中,我们可以看到相关分析的组件,将其拖入并与上述组件连接:
用鼠标选择相关性分析,在右侧要选择的列中选择销售和广告费用,向右移动:
最后,我们来看看执行后的输出效果。点击广告费用与销售额之间的区域,可以看到相关系数为0.94,与上面Python计算的结果一致:
由于篇幅有限,没有介绍散点图、数据预测等其他功能的实现方法,感兴趣的伙伴可以自行研究。