线性回归分析是数据挖掘里一个非常重要的方法,相信大家以前在高中或者大学时都学过一点点线性回归的概念。在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。听着有点复杂,简单来说,就是看一组零散的数据是否存在相关性。线性回归分析涉及到的数学理论知识比较复杂,本文不会涉及到这些数学理论知识,仅是介绍应用场景以及制作方法,请大家放心食用。

一、应用场景:

在开始之前,我们先来了解一下线性回归分析有什么用。线性回归分析在日常工作中运用非常广泛,通过线性回归,我们可以用模型去描述两组数据中是否存在相关性。例如在分析销售数据时,我们经常要对广告费用以及销售额的关系进行判断,评估广告费用对销售额的作用到底有多大,公司应不应该加大广告费投入,如果未来投入一定的广告费用,预测销售额可以达到多少…这一系列问题都可以通过线性回归分析去得出答案。

只要存在两组以上的数据,我们都可以利用线性回归的方法去对其进行检验。下面我利用Python去对线性回归分析的方法和过程进行详细的描述,力求以最简洁语言带你走进数据挖掘的神秘大门。

二、Python实现过程:

第一步:数据导入

首先要做的就是把本地的EXCEL或者CSV文件读取到Python里,我们可以引用pandas库去读取数据:

读取成功后,我们先来打印看一下数据是否和EXCEL里的是一致的:

第二步:计算相关系数

上面我们说过了,只要存在两组数据,我们就可以检验其是否存在相关性,在数学上通常是用皮尔逊相关系数来进行检验,这个数值越接近1,就代表两组数据越具有相关性,我们可以用corr这个函数来对广告费以及销售额进行检验:

接下来我们打印一下data1,大家可以看到相关系数的值已经算出来了,达到了0.93,非常接近1,说明这两组数据具有非常高的相关性:

第三步:画图

为了更加直观地对这两组数据进行呈现,我们可以画一个散点图,这时要引入另外一个库:matplotlib,首先把广告费用设置为X轴,把销售额设置为Y轴,然后再利用plot()函数进行画图,最后再利用利用show()进行图表呈现:

打印一下,我们看看图形的效果,从图中可以看中,这个散点图里面所有点的排列基本是在一条直线上的,拟合的非常紧密,说明广告费用与销售额是呈正相关的,广告费用越多,销售额也会随之增长,这也对我们上面计算出来的相关系数提供了一个非常好的佐证:

第四步:建立线性回归模型

线性回归的方程我们可以用y=ks+b这个公式来表示,其中x是自变量,y是因变量,k是斜率,b是直线在轴上的截距。接下来我们就可以对上面的这组数据去建立线性回归模型,这里要引用的是sklearn库,这个库是的主要作用是进行机器学习。首先先定义一个线性回归的对象LinearRegression(),然后再利用fit()函数对X、Y的值进行模型训练,最后要输出两个数据,一个是coef_,代表k值,另一个是intercept_,代表b值:

输出后的数据如下,k是17.3,b是291.9:

这里我们可以检验一下模型的拟合程度,这里可以用score()函数进行验证,这个代表的意思是,数值越接近1,代表这个模型的拟合程度就越好:

结果算出来是0.879,说明模型的拟合程度非常好,可信度非常高,也就是可以投入到实际应用中去使用:

第五步:数据预测

从上面的步骤中我们得知了k和b的值,只要有x的值,那么就可以算出y的值是多少了,通常我们可以利用这个原理去对数据进行预测。这里可以利用predict()函数接入一个参数对数据进行预测,例如下面我们看看广告费在20万的时候,销售额预计会有多少:

最后算出来的销售额是638万:

三、后续建议

从python的实现过程来看,虽然通过写代码的形式可以把整个线性回归分析完美地实现了,但是毕竟大部分小伙伴都没有接触过这门编程语言,如果真要用python去做的话可能会难度比较大。那么有没有更加简洁一点的方法呢?答案是肯定的,下面我开始尝试用smartbi这个工具对上面的流程进行简化。

进入数据挖掘的界面后,可以看到左边的工具栏上有很多组件,这个就是ETL的工作界面。ETL在数据清洗上运用比较广泛,可以把很多复杂、不规则的数据源治理的井然有序。如果把ETL和数据挖掘结合起来,必然可以大幅提高数据分析的效率。

第一步要做的是先把数据源读取到ETL的界面里,我们可以把EXCEL文件这个组件拖拽进来,并把上面的广告费用的EXCEL文件读取进来:

如果EXCEL文件中存在着多个sheet,还需要把读取Excel sheet这个组件拖拽进来,并读取您的目标sheet:

读取完成后,可以先对数据源进行预览:

我们先来计算一下广告费用与销售额的相关系数怎么算出来的,在统计分析中我们可以看到相关性分析的组件,把它拖拽进来,并与上面的组件进行相连:

鼠标选中相关系分析,在右边的待选列里把销售额和广告费用选中,并移动到右边:

最后我们看一下执行后的输出效果,点击广告费用与销售额中间的区域,可以看到相关性系数是0.94,这个数据和我们上面用Python算出来的结果是一致的:

由于篇幅有限,散点图、数据预测等其他功能实现的方法就不多做介绍了,有兴趣的小伙伴可以自行去研究一下。

手把手教你做线性回归分析,实用且通俗易懂!相关推荐

  1. 手把手教你做关键词匹配项目(搜索引擎)---- 第九天

    第九天 回顾: 8. 手把手教你做关键词匹配项目(搜索引擎)---- 第八天 7. 手把手教你做关键词匹配项目(搜索引擎)---- 第七天 6. 手把手教你做关键词匹配项目(搜索引擎)---- 第六天 ...

  2. python手机版做小游戏代码大全-Python大牛手把手教你做一个小游戏,萌新福利!...

    原标题:Python大牛手把手教你做一个小游戏,萌新福利! 引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规 ...

  3. jsp mysql视频_手把手教你做jsp servlet mysql实现的图书管理系统附带视频开发教程和完整源码...

    上一个教程我们做的是对数据库框架底层原理的讲解,然后教大家做了一个自己的数据库框架,这次我们做的这个图书管理系统就是用我们上个教程自己写的数据库框架,整个项目做完框架运行的很稳定,没有出现任何问题.如 ...

  4. oracle可以在liux上装_【Oracle】手把手教你做之Linux上安装Oracle11g

    手把手教你做之Linux上安装Oracle11g 这是我第一次安装时的过程,及遇到问题的解决办法,在此记录,有不妥之处,多多交流. 因为高稳定性及高定制低系统消耗等原因,我们希望在Linux上安装Or ...

  5. 手把手教你做关键词匹配项目(搜索引擎)---- 第二十一天

    客串:屌丝的坑人表单神器.数据库那点事儿 面向对象升华:面向对象的认识----新生的初识.面向对象的番外----思想的梦游篇(1).面向对象的认识---如何找出类 负载均衡:负载均衡----概念认识篇 ...

  6. 手把手教你做产品经理,视频课教程已经发布,欢迎观看

    手把手教你做产品经理,视频课教程已经发布,欢迎观看 http://edu.51cto.com/course/course_id-5062.html 转载于:https://blog.51cto.com ...

  7. 可视化实战!Python+BI,手把手教你做炫酷的NBA可视化分析

    之前手痒做了一次NBA可视化分析,好多人追着我问教程,这两天终于闲下来了,花时间整理这篇NBA可视化分析教程,手把手教大家做一次炫酷的数据可视化分析! 先部分展示本次教程的作品: 数据获取 本次可视化 ...

  8. 易基因|干货:手把手教你做RNA m5C甲基化测序分析(RNA-BS)

    大家好,这是专注表观组学十余年,领跑多组学科研服务的易基因. 本期,我们讲讲m5C RNA甲基化重亚硫酸盐测序测序(RNA-BS)实验怎么做,从技术原理.建库测序流程.信息分析流程等方面详细介绍. 一 ...

  9. 手把手教你做树莓派魔镜-MagicMirror(一)-准备工作

    本系列文章: 手把手教你做树莓派魔镜-MagicMirror(一)-准备工作 手把手教你做树莓派魔镜-MagicMirror(二)-烧写系统卡 手把手教你做树莓派魔镜-MagicMirror(三)-系 ...

  10. 【小白目标检测】手把手教你做视频中的实时目标检测(基于Pelee算法)

    手把手教你做视频中的实时目标检测(基于Pelee算法) 0. 先看效果: 1. 算法详解: 2. 下载源码: 3. 运行检测: 有需求的大佬欢迎加入我的接单群,需求详情请群里戳群主 获取源码或数据集: ...

最新文章

  1. mysql主备模型,MySQL数据同步【双主热备】
  2. 巧用CSS提升表格呈现性能
  3. 基于Android平台的流媒体播放器的设计
  4. ADB设置连接android真机
  5. SQL2005 数据库数据同步
  6. 深度残差收缩网络:(六)代码实现
  7. SCUT - 240 - 宝华的文件系统 - 模拟
  8. paip.提升稳定性---c3p0数据库连接池不能取到连接An attempt by a client to checkout a Connection has timed out
  9. 分享几款强大的录音软件,厉害炸了!
  10. 【软考软件评测师】第三十三章 数据库系统应用
  11. [USACO 2.2.1] Preface Numbering
  12. 基于服务器搭建部署的疫情动态地图
  13. 命令行重启Mysql
  14. 宏观经济需求与供给分析之:需求的收入效应、替代效应和需求定律
  15. linux 选择 平铺 窗口,【如何配置linux 平铺式窗口管理器i3wm?】-看准网
  16. 某信息安全攻防大赛周周练考核(一) Writeup By 2ha0yuk7on
  17. Google+推出相册管理器Album Organizer
  18. Linux 挂载2TB以上硬盘
  19. JS学习日记(二)字符与对象
  20. 浅谈分页插件PageHelper

热门文章

  1. 主数据项目交付最佳实践
  2. 苹果怎么滚动截屏_30个小技巧,带你感受苹果系统到底有多好用
  3. Excel 添加复选框
  4. 知识图谱下图神经网络、图计算、图数据、图数据库未来发展趋势如何?
  5. Pandas query 的用法, df.query
  6. php screw 密钥,php-screw php代码加密工具用法(整理)
  7. 站点LOGO开通注意事项,百度LOGO权限开通的技巧
  8. 基于opencv答题卡识别
  9. 计算机软件被放进回收站,电脑不能把文件放入回收站只能永久删除怎么办?
  10. python:实现恩尼格玛密码机算法(附完整源码)