线性回归实战案例一:多元素情况下广告投放效果分析步骤详解

  • 2 线性回归
    • 2.1 案例一:多元素情况下广告投放效果分析
      • 2.1.1 模块加载与绘图布局样式设置
      • 2.1.2 加载数据和数据筛选
      • 2.1.3 探索式数据分析(EDA)
      • 2.1.4 探究字段之间的关联性
      • 2.1.5 模型创建与拟合
      • 2.1.6 数据标准化/缩放化
      • 2.1.7 模型验收
      • 2.1.8 模型对比

手动反爬虫,禁止转载: 原博地址 https://blog.csdn.net/lys_828/article/details/121382191(CSDN博主:Be_melting)

 知识梳理不易,请尊重劳动成果,文章仅发布在CSDN网站上,在其他网站看到该博文均属于未经作者授权的恶意爬取信息

2 线性回归

2.1 案例一:多元素情况下广告投放效果分析

数据集为广告投放营收数据。包含销售利润数据和与之相关联的投放渠道数据,比如电台投放信息,电视频道投放信息和报纸投放信息等三个因素。

2.1.1 模块加载与绘图布局样式设置

新建一个Jupyter notebook文件,命名为:线性回归分析-案例1-媒体投放.ipynb,然后在第一个cell中加载要使用到的模块和绘图相关的布局与样式,代码如下。

2.1.2 加载数据和数据筛选

数据集较为简单,只有四个字段,其中的利润字段为sale,为了更方便理解数值的大小,可以将sale中的数值扩大到15倍后形成新的字段为sale2,最后保留扩大后的字段,操作如下。

2.1.3 探索式数据分析(EDA)

数据集的内容是很丰富的,通过数据工具箱中的相关工具对数据集进行预览和汇总,尝试使用pandas在df中的几个重要工具集进行数据查看,例如info(), isnull().sum(), describe(), value_counts()等

(1)首先看一下四个字段的基础信息,包括数据量和数据类型。

(2)接着进行各字段中的缺失值查看。如果有缺失值,需要进行缺失值处理,当前数据中并无数据缺失。

(3)然后都是数值字段,可以进行绘制统计表格。统计表格中包含了各字段中的均值、标准差、最小/最大值,以及四分位数。

(4)如果是分类型字段,可以使用value_couts()进行各类别之间的频数统计,当前数据集中的四个字段均为数值型,不适合使用该方法进行频数统计。

2.1.4 探究字段之间的关联性

实际数据中往往会出现有些数据呈现关联特性,有些数据其实没有关联。下面就是要采用sns.pairplot()方法来探究字段之间的关联性。下图中,y轴是作为因变量,x就是自变量,其中有三自变量一个因变量,所以绘制的图形共3个。利润和电视投放的效果之间呈现出比较明显的线性关系,而在广播投放中效果不是太明显,也有稍微线性的关系,但是最后利润和报纸之间是完全看不出来有相关性。

散点图形分布只能看出一个模糊的大概,具体量化的关联性,可以通过关联矩阵和热力图进行展示,首先就是corr()方法输出关系矩阵。

然后可以将输出的表格进行图形可视化,较为常用的就是热力图,直接利用上面的结果进行输出。

查看关联矩阵和热力图都只需要查看主对角线(左上角到右下角对角线)的一侧即可,由于这里探究的是利润与其它三个影响因素之间的关系,因此只需要看最后一行的数据即可。数值在(0.45,1)或者(-1,-0,45)之间,都可以认为两者具有相关性。比如上面的输出结果,利润和电视投放以及广播投放都是有关联,而与新闻报纸的投放没有关联

2.1.5 模型创建与拟合

(1)导入要使用的模型。sklearn 数据模块,这个模块内置了多达20多种常见的机器学习模型,使得用户在使用模型时无需自行设计或定义模型可以做到开箱即用。

(2)创建模型lm1,此时的模式没有任何数据接入,所以没有功能,简单理解为智商为0 的小白。

(3)数据集拆分。把数据分成两个部分,第一个部分是让机器模型需要学习的数据,此处指的是特征数据(对应X),还有一部分是指的标签数据(对应Y)。

  • 特征数据(Feature)就是非结果数据,在本例中,除了最后的销售额以外的字段,都是特征数据,可能不同的特质强弱关系不同,但是都是属于特征范畴。

  • 标签数据(Lable)就是结果数据,在回归类模型中,就是一个数据数组,在分类模型中,就是归属于哪一类。

数据集拆分结果如下,一般对于X数据,直接采用双中括号的方式进行筛选,特别是实际数据中字段量特别多时。

分别查看对应的数据结果如下。

(4)模型拟合。已经初始化过模型,并且数据划分完毕后,就可以进行模型的拟合,即是让模型的智商从0 开始增加 。

(5)输出结果。模型拟合完毕后,就可以输出最终的结果,包含了两个部分,第一部分就是截距,第二部分就是自变量前的系数。参照下面线性回归的算法模型公式,可以得到使用当前数据进行拟合后的模型结果。

2.1.6 数据标准化/缩放化

在得到模型算法公式的结果后,可能会有一个小问题,就是电视投放的影响因素与利润之间是有很强的关系(相关系数达到了0.78),但是这里的系数值才为0.69,反而电台投放的影响因素对应的系数高达了2.83。最后的一个因素报纸投放影响因素系数接近为0,说明该因素基本上不影响最后的利润。

解决上面问题就是进行数据标准化(统一缩放化),消除各字段之间数据取值范围的影响。接下来就是创建经过标准化的数据模型,对比前面没有进行处理的模型。

经过处理后,看一下advert2中后三个字段的统计分布表,核实数值是否都转化到了0-1范围区间。

数据转化完成后,划分数据集,重新定义X数据,Y数据保持不变,如下。

重新创建一个线性回归模型lm2,然后进行拟合数据,输出结果如下。此时各个影响因素前的系数就比较贴合根据线性相关性判断得到的结果。

2.1.7 模型验收

以上对于同一批数据创建了两个模型,一个是不进行数据处理,一个是对数据进行标准化(统一缩放化),但是都有一个共同点,就是把数据全部都拿来用作模型学习了,没有测试的数据,这种情况下就没有办法判断模型的好坏,也就说不上哪一个模型拟合的效果好了。

为了避免“记答案”的现象,即所有数据输入后,模型会都记住里面的内容,再拿其中的数据再测试,都是学习过的内容,会影响模型的稳定性,无法适应新数据的加入,故需要将数据进行测试集和训练集的划分。此部分为固定的操作,当指定好特征数据X和标签数据Y后(可以选择未处理的数据,也可以选择标准化后的数据,这里选择后者进行模型lm3的创建),直接加载train_test_split模块,然后指定一个切割的比例大小和随机状态,系统就会把数据分割完毕。

再次进行模型的创建和拟合,结果如下。需要特别注意,此处添加到fit里面的数据为训练数据集中的X和Y需要和后面预测中传入的数据以及模型评估中的数据进行区分开

模型预测。由于存在测试集,就可以那已经训练好的模型lm3进行预测测试集中数据对应的结果,输出如下。

预测结果的好坏需要有一个衡量的标准,因此引用评估模型的判定方法,均方差和R方,其中均方差代表着预测数据和实际数据间的平均差额,而R方代表着模型的拟合能力。

模型的R方快接近了0.9,说明模型对于数据拟合的很好。但是对于误差的评估,并不能单独看一个模型的结果,需要多个模型的结果进行比对,差值越小说明模型越好。此外关于误差一般有三个方式进行衡量(比对时候选择一种即可),具体公式和含义解释如下。

  • Mean Absolute Error (MAE) 是预测数据和实际数据间的平均差额(绝对值):
  • Mean Squared Error (MSE) 是预测数据和实际数据间的平均差额(平方值):
  • Root Mean Squared Error (RMSE) 是预测数据和实际数据间的平均差额(平方值的开根号版本):

2.1.8 模型对比

接下来就是再创建一个模型进行误差值和R方的比对,顺便可以看一下数据不处理和经过标准化(统一缩放化)后模型之间的差别。

重新指定X数据,Y不需要改变,然后在进行分割数据时候要注意分割的比例和随机状态不能发生变化。

接着就是进行数据预测和模型误差求解与模型拟合能力的判断,输出结果如下。

对比两个模型最后的得分,可以说对于当前数据集,不管是不是进行标准化(统一缩放化)处理,最后几乎都不会影响模型的误差和模型的拟合程度。

【机器学习】线性回归实战案例一:多元素情况下广告投放效果分析步骤详解相关推荐

  1. python智慧城市_智慧城市背景下Python机器学习项目实战案例分享

    首先,何为智慧城市?智慧城市的"智慧"源自何处? 智慧城市的特征在于运用大数据和数字技术提高居民生活质量. 机构获得的数据越全面.越实时,它们就越有能力观测事件发生的详情.分析需求 ...

  2. 【机器学习项目实战案例目录】项目详解 + 完整源码

    前言 大家好,我是阿光. 本专栏整理了<机器学习项目实战案例>,内包含了各种不同的入门级机器学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码. 正在更新中~ ✨

  3. 智慧城市背景下Python机器学习项目实战案例分享

    首先,何为智慧城市?智慧城市的"智慧"源自何处? 智慧城市的特征在于运用大数据和数字技术提高居民生活质量. 机构获得的数据越全面.越实时,它们就越有能力观测事件发生的详情.分析需求 ...

  4. 基于spark mllib_Spark高级分析指南 | 机器学习和分析流程详解(下)

    - 点击上方"中国统计网"订阅我吧!- 我们在Spark高级分析指南 | 机器学习和分析流程详解(上)快速介绍了一下不同的高级分析应用和用力,从推荐到回归.但这只是实际高级分析过程 ...

  5. php根据元素返回可以,array_search()函数按元素值返回键名步骤详解

    这次给大家带来array_search()函数按元素值返回键名步骤详解,array_search()函数按元素值返回键名的注意事项有哪些,下面就是实战案例,一起来看一下. array_search() ...

  6. word中双栏情况下插入单栏效果图片

    word中双栏情况下插入单栏效果图片流程: 1.光标放在要插入图片的地方,选择 "布局"---->>>分隔符选项----选择 "分节符(连续)​&quo ...

  7. 【IEEE论文投稿word中双栏情况下插入单栏效果图片】

    [IEEE论文投稿word中双栏情况下插入单栏效果图片] word中双栏情况下插入单栏效果图片流程: word中双栏情况下插入单栏效果图片流程: 1.光标放在要插入图片的地方,选择 "布局& ...

  8. 加拿大计算机转学案例,在加拿大转学步骤详解

    在加拿大转学步骤详解 寄托天下 2004-10-12 06:07 浏览3349次 以前有朋友问及过转学的问题,只是口头上回答了,一直没有落实到笔头上.总的来说,转学的整个过程是烦琐的,一点不比申请出国 ...

  9. 【论文速递】EMNLP2022-随机模态缺失情况下的多模态情感分析

    [论文速递]EMNLP2022-随机模态缺失情况下的多模态情感分析 [论文速递] EMNLP2022-EMMR:Mitigating Inconsistencies in Multimodal Sen ...

最新文章

  1. 4.21 LNMP环境介绍 4.22/23/24 Mariadb安装 4.25 服务管理
  2. mysql b-a全局索引_MySQL中B+树索引的使用
  3. Python基础教程(008)--第一个Python程序
  4. 【渝粤教育】广东开放大学 电路分析基础 形成性考核 (59)
  5. 上传文件Base64格式(React)
  6. 如何命令行远程连接centos_如何使用windows远程控制centOS桌面
  7. 每日一题(15)—— static有什么用途
  8. 【英语学习】【English L06】U01 Breakfast L4 Drink Morning Tea
  9. Shell编程语言(一)
  10. 解决AxureRP经常性损坏问题
  11. 智能优化算法——篇1
  12. 划重点!算力网络是东数西算的『神经中枢』
  13. mysql数据库 数据查询闯关(头哥)
  14. 新上线的材料计算超算云平台Mcloud V2.0版本推出全新功能——web端工作流拖拽提交作业+便捷web端建模
  15. multimap的实际用途
  16. c语言中使用的字符常量 其起止标记,C Primer Plus学习笔记(三)- 字符串和格式化输入/输出...
  17. OATS PK Pairwise Testing
  18. MIPI转换芯片、ICN6211、ICN6202、MIPI转RGB、MiPI转LVDS、分辨率最高1080P、MIPI转双路LVDS
  19. 一个大牛写的JDBC工具类
  20. JIRA 集成Devops\fisheye注意gn

热门文章

  1. ecshop小京东的模板切换到smarty3.1.3之去掉原生的php语法
  2. 计算机师徒结对方案,指导青年教师(师徒结对)工作计划
  3. 结对项目——进一步完善四则运算
  4. Android 仿今日头条视频播放器实现(不使用节操哟)
  5. 五个维度着手MySQL的优化,我和面试官都聊嗨了
  6. 新个人所得税EXCEL计算公式以及税后工资反算税前工资公式
  7. 【工具】VSCode无法正常启动Terminal窗口
  8. php计算两个坐标(经度,纬度)之间距离
  9. HTML3D立体城市特效代码
  10. 沉默的羔羊--电影影评