多元线性回归模型预测销售额

简介: 多元线性回归模型预测销售额

多元线性回归

多元线性回归是线性回归的一种扩展形式,它涉及多个自变量(特征)与一个因变量之间的关系。多元线性回归模型的数学表示如下:

各个参数的解释:

案例

advertising.csv文件是某商品的广告推广费用(单位为元)和销售额数据(单位为千元),其中每行代表每一周

的广告推广费用(包含淘宝、抖音和小红书三种广告费用)和销售额。 若在未来的某两周,将各种广告投放金额

按如下分配, 请预测对应的商品销售额:

(1)淘宝: 200,抖音:100,小红书: 150

(2)淘宝: 300,抖音:150,小红书: 200

advertising.csv概览:

模型建立

y = a x 1 + b x 2 + c x 3 + d x 4 + A ax_1+ bx_2 + cx_3 + dx_4 + Aax1+bx2+cx3+dx4+A

其中 y 是预期销售额,x1~x4是对应推广费用,b是误差项

代码实现

我们可以使用 LinearRegression 创建模型,

使用 mean_squared_error 模块,计算计算均方误差回归损失,从而评估模型

最终带入我们要预测的那几个数字,对销量进行预估

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# 读取包含所有四种数据的 CSV 文件
all_data = pd.read_csv('advertising.csv')

# 划分数据集
X = all_data[['taobao','tiktok','little red book']]
print(X)
y = all_data['sales']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 选择线性回归模型
model = LinearRegression()

# 训练模型
model.fit(X_train, y_train)

# 评估模型
y_pred_train = model.predict(X_train)
mse_train = mean_squared_error(y_train, y_pred_train)
print(f'Mean Squared Error on Training Data: {mse_train}')

# 进行预测
X_new = pd.DataFrame({'taobao': [200], 'tiktok': [100], 'little red book': [150]})
y_pred_new = model.predict(X_new)
print(f'Predicted Output for New Input: {y_pred_new[0]}')

X_new = pd.DataFrame({'taobao': [300], 'tiktok': [150], 'little red book': [200]})
y_pred_new = model.predict(X_new)
print(f'Predicted Output for New Input: {y_pred_new[0]}')

结果

项目源地址:

https://gitee.com/yishangyishang/homeword.git

目录
相关文章
|
前端开发
若依框架---如何防止请求重复提交?
若依框架---如何防止请求重复提交?
1656 2
|
9月前
|
存储 关系型数据库 MySQL
NestJS 配置 TypeORM 进阶教程
本文介绍了在 NestJS 项目中配置 TypeORM 的三种方式:初级阶段直接在 AppModule 中配置;进阶阶段抽离出独立的 DatabaseModule;进一步使用自定义命名空间将数据库配置分离到单独文件,提升可维护性与模块化程度。
433 3
|
3月前
|
人工智能
Cursor快捷键大全:效率翻倍的隐藏技巧
用了半年Cursor,才明白高效编程离不开快捷键。从基础跳转到AI协作,这些实战技巧让编码行云流水。掌握Cmd+P、F12、Ctrl+.等核心快捷键,配合多光标、自定义指令,彻底告别鼠标依赖。每天省下一小时,从记住两个原则开始:少用鼠标,善用命令面板,逐步构建肌肉记忆,让Cursor真正成为你的代码外脑。
|
10月前
|
JSON 自然语言处理 Kubernetes
MindIE PD分离部署Q&A
使用mindie进行PD分离部署
529 28
|
Android开发
Flutter控件的显示与隐藏
Flutter控件的显示与隐藏
609 3
|
机器学习/深度学习 存储 TensorFlow
LSTM模型预测时间序列:根据历史销量数据预测商品未来销量
LSTM模型预测时间序列:根据历史销量数据预测商品未来销量
3249 0
|
编译器 C语言
【C语言】常量的 “前缀和后缀” 大通关!
在C语言中,常量的前缀和后缀用于明确指定常量的类型和进制系统。前缀主要用于区分不同进制的数字常量,而后缀则用于区分不同类型的整数和浮点数。正确使用前缀和后缀,可以提高代码的可读性和可维护性,确保编译器正确地理解和处理常量。
851 1
网络拓扑有哪些类型?
【8月更文挑战第19天】网络拓扑有哪些类型?
819 1
|
SQL 人工智能 自然语言处理
DataWorks Copilot:大模型时代数据开发的新范式
阿里云DataWorks是一站式数据开发治理平台,支持多种大数据引擎,助力企业构建数据仓库、湖仓一体架构。DataWorks现推出Copilot,致力于打造智能SQL助手和AI Agent,通过生成SQL、优化SQL、提供查询帮助、注释生成、错误修正等功能,帮助数据开发工程师和数据分析师提升SQL 开发和分析的效率和体验。目前,DataWorks Copilot正开放邀测,欢迎大家体验。
21463 7
restTemplate 发送http post请求带有文件流、参数
restTemplate 发送http post请求带有文件流、参数
518 1