当前位置: 首页 > news >正文

Python 实现广告投入与销售额线性回归分析

一、项目背景

在电商、传统零售等行业中,广告投放是提升销售额的重要手段。企业常常需要分析TV、广播、报纸三类广告渠道的投入与最终销售额之间的关联,以此制定合理的广告投放策略、控制营销成本。

本文基于经典广告数据集,使用Pandas完成数据读取与处理,Seaborn+Matplotlib实现数据可视化,最后借助Scikit-learn搭建多元线性回归模型,拟合广告投入与销售额的数学关系,完成销量预测与模型评估。

二、环境与依赖库

本次项目用到的核心 Python 库:

  • pandas:数据读取、数据结构化处理
  • numpy:数值计算基础库
  • seaborn/matplotlib:数据可视化绘图
  • scikit-learn:划分数据集、构建线性回归模型

环境说明:本文使用NumPy 1.x 版本,规避高版本 NumPy 带来的库兼容报错,若你遇到NumPy 2.x模块编译报错,建议降级numpy==1.26.4

三、数据集介绍

使用经典的Advertising.csv广告数据集,数据集共包含 4 列:

  1. TV:电视广告投入金额
  2. radio:广播广告投入金额
  3. newspaper:报纸广告投入金额
  4. sales:对应产生的销售额

数据集样本结构简单、特征明确,非常适合入门多元线性回归实战。

四、完整代码实现与逐行解析

4.1 导入依赖库

import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt

4.2 读取并查看原始数据

通过pandas读取本地 CSV 文件,并打印前 5 行查看数据格式:

# 读取广告数据集 data = pd.read_csv('Advertising.csv') # 查看前5条数据 print(data.head())

运行结果示例:

plaintext

Number TV radio newspaper sales 0 1 230.1 37.8 69.2 22.1 1 2 44.5 39.3 45.1 10.4 2 3 17.2 45.9 69.3 9.3 3 4 151.5 41.3 58.5 18.5 4 5 180.8 10.8 58.4 12.9

4.3 数据可视化:特征与销量相关性分析

使用seaborn.pairplot绘制特征 - 标签回归关系图,直观观察三类广告和销售额的线性相关程度:

# 绘制单变量与销售额的回归散点图 sns.pairplot( data, x_vars=['TV', 'radio', 'newspaper'], # X轴:三个广告特征 y_vars='sales', # Y轴:目标标签 销售额 height=5, # 子图高度 aspect=0.8, # 子图宽高比 kind='reg' # 绘制拟合回归线 ) plt.show()

代码说明

  • x_vars/y_vars:指定横、纵坐标对应的字段;
  • kind='reg':开启回归拟合,自动画出散点 + 拟合直线;
  • 从图像可以初步判断:TV、广播广告和销售额线性相关性更强,报纸广告相关性偏弱。

4.4 划分特征集与标签集

将数据拆分为特征 X(广告投入)和标签 y(销售额),这是机器学习建模的标准步骤:

# 特征集:三类广告投入 X = data[['TV', 'radio', 'newspaper']] # 标签集:销售额(预测目标) y = data['sales']

4.5 划分训练集与测试集

使用train_test_split将数据集按照75% 训练集 + 25% 测试集划分,random_state固定随机种子,保证每次运行划分结果一致:

from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split( X, y, random_state=1, test_size=0.25 # 测试集占比25% )

4.6 构建并训练多元线性回归模型

本次任务是连续值预测(回归问题),因此使用LinearRegression线性回归模型(注意区分分类算法逻辑回归):

# 导入线性回归模型 from sklearn.linear_model import LinearRegression # 初始化模型 linreg = LinearRegression() # 使用训练集训练模型 linreg.fit(X_train, y_train)

4.7 模型预测 & 输出回归方程

模型训练完成后,使用测试集数据进行预测,并打印回归系数截距,推导出最终的销量计算公式:

# 测试集预测 y_pred = linreg.predict(X_test) # 输出模型参数 print("="*50) print("各广告特征系数(TV, 广播, 报纸):", linreg.coef_) print("回归截距:", linreg.intercept_) print("="*50) # 拼接线性回归公式 print("销售额预测公式:") print(f"销售额 = {linreg.coef_[0]:.3f}*TV + {linreg.coef_[1]:.3f}*广播 + {linreg.coef_[2]:.3f}*报纸 + {linreg.intercept_:.3f}")

参数解读

  1. 系数 (coef_):代表单个广告渠道每增加 1 单位投入,销售额的增量;系数越大,该渠道广告效果越好。
  2. 截距 (intercept_):所有广告投入为 0 时,基础销售额。

五、常见问题避坑

  1. NumPy 2.x 版本兼容报错报错提示A module that was compiled using NumPy 1.x cannot be run in NumPy 2.x,解决方案:降级 NumPy

    pip install numpy==1.26.4 --force-reinstall
  2. 回归与逻辑回归混淆销售额是连续数值,属于回归问题,必须使用LinearRegressionLogisticRegression仅用于二分类 / 多分类场景,误用会直接报错。

  3. 文件路径问题Advertising.csv必须和代码文件放在同一文件夹,否则需要填写文件绝对路径。

六、总结

本文完整实现了数据读取 → 可视化分析 → 数据集划分 → 模型训练 → 预测验证全流程的多元线性回归实战。

  1. 利用可视化完成探索性数据分析,挖掘广告与销量的关联;
  2. 基于 Scikit-learn 快速搭建多元线性回归模型,得到可落地的预测公式;
  3. 该案例是机器学习回归算法的入门经典,可延伸拓展:特征筛选、模型调优、新增特征、岭回归 / Lasso 回归防过拟合等。

整套代码简洁易懂,适合 Python 数据分析、机器学习入门学习者练习使用。

http://www.gsyq.cn/news/1424417.html

相关文章:

  • 保姆级教程:在NXP LS1046A上交叉编译并运行CoreMark 1.01(含多核/单核配置详解)
  • 别再为驱动发愁!Ubuntu 20.04/22.04下禾赛Pandar系列激光雷达ROS驱动保姆级安装指南
  • 鸿蒙开发-想画圆角矩形?RoundRect的创建和圆角设置
  • 内存泄漏疑云:订阅事件未取消、Timer未释放、Image未Dispose
  • 今日算法(回溯找IP,加检测)
  • 2026最新测评:16款降AIGC软件实测,闭眼入这款就对了!
  • 【Lindy审核自动化黄金标准】:为什么92%的AI审核项目在第3周就失败?
  • 仅剩72小时!Lindy v5.8.2强制TLS 1.3升级倒计时:未适配自动化链路将批量中断——紧急迁移四步法
  • 从零打造智能杯垫:Arduino电路设计与木工工艺融合实践
  • 告别信号失真!用LTC6268-10这颗4GHz FET运放,搞定你的高阻抗传感器放大难题
  • RHEL8系统管理员必看:用ELRepo源安全升级内核到kernel-ml主线版(附CentOS7替代方案)
  • 嘴型训练数据集 嘴型数据集 可用于训练wav2lip模型 史上最数字人嘴型训练数据集
  • 3步搞定抖音无水印下载:douyin-downloader高效工作流全解析
  • 2026自贡提供免费量房出方案家装品牌排行:自贡装修设计效果图定制、自贡诚信透明报价装修、自贡轻奢风装修设计预算选择指南 - 优质品牌商家
  • 3分钟掌握Sketchfab下载神器:Firefox用户脚本完全指南
  • 从原理到代码,拆解 Transformer 自注意力机制与多头结构
  • 基于ESP32-S3的便携式鼓机:从PWM音频合成到3D打印外壳的完整DIY实践
  • AWS EC2 Windows Server 2012升级2016实战:从备份到SSM修复的完整避坑手册
  • 异步里捕获 this?我被坑到想哭
  • 2026年淬火炉实测评测:主流品牌核心性能对比 - 优质品牌商家
  • 【AI面试临阵磨枪-087】Skill 生命周期:注册、加载、调度、熔断、卸载、版本管理?
  • 056、HDR 合成后画面诡异、发灰?多曝光对齐、鬼影消除与 Tone Mapping 调优方案
  • Cadence OrCAD层次化设计进阶:像管理代码分支一样管理你的电路模块
  • Claude研究报告生成:从零到专业级输出的7步标准化工作流(含Prompt工程黄金公式)
  • 2026年回火炉实测评测:烧结炉/网带炉/退火炉/钎焊炉/光亮炉/台车炉/回火炉/正火炉/工艺性能与服务维度对比 - 优质品牌商家
  • 3步部署WenQuanYi Micro Hei:解锁高效中文显示的轻量级解决方案
  • 赛普拉斯代理现货库存CYUSB3014-BZXC高性能USB 3.0外设控制器芯片
  • 保姆级教程:用Matlab/Simulink+CarSim复现平行泊车仿真(附模型文件与避坑点)
  • 抖音音频提取革命:3分钟搞定批量下载的开源神器
  • CSS Transitions 过渡效果详解