【机器学习】调配师:咖啡的完美预测

有一天,小明带着一脸期待找到了你这位数据分析大师。他掏出手机,屏幕上展示着一份详尽的Excel表格。“看,这是我咖啡店过去一年的数据。”他滑动着屏幕,“每个月的销售量、广告投入,还有当月的气温,我都记录下来了。我总觉得这之间有关联,但我就是说不清楚。你能帮我找出其中的奥秘吗?”
在这里插入图片描述

你微微一笑,接过手机扫了一眼数据。“没问题,小明。这些数据就像咖啡店的DNA,隐藏着它的生命密码。而我们要做的,就是用线性回归这把钥匙,去解锁这些密码。”

你打了个响指,仿佛已经胸有成竹。“想象一下,这个线性回归模型就像一个智能咖啡师。它会根据过去的经验,也就是这些数据,来学习如何冲泡出一杯完美的‘预测销售额’。就像咖啡师会根据咖啡豆的种类、研磨的粗细、水温的高低来调整冲泡方法一样,我们的模型也会根据销售量、广告投入和气温来调整它的‘冲泡配方’,从而给出最准确的预测。”
在这里插入图片描述

小明的眼睛亮了起来,仿佛看到了新的希望。“那太棒了!这样一来,我就能提前知道哪些月份生意会火爆,哪些月份需要加大广告投入,还能提前规划好库存,避免浪费。”

你点了点头,表示赞同。“没错,这就是数据分析的魅力所在。它不仅能告诉你过去发生了什么,还能帮你预测未来会发生什么。这样一来,你就能做出更明智的决策,让你的咖啡店更上一层楼。”

说完,你迫不及待地打开电脑,准备开始构建这个神奇的线性回归模型。你知道,一旦模型构建成功,在这里插入图片描述
小明和他的咖啡店将迎来一个全新的时代。
在这里插入图片描述

在接下来的时间里,你和小明一起投身于数据的海洋中。你们清洗数据、构建特征、训练模型,每一步都充满了挑战和乐趣。

实际应用机器学习源代码

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error# 小明的咖啡店在过去一年里收集了详细的运营数据,包括每月的销售量(Sales)、广告投入(Advertising)、平均气温(Temperature)以及对应的月度销售额(Monthly_Revenue)
data = pd.read_csv('coffee_shop_data.csv', header=0)# 分离出影响销售额的特征变量和目标变量
X = data[['Sales', 'Advertising', 'Temperature']]  # 输入特征:销售量、广告投入、平均气温
y = data['Monthly_Revenue']  # 目标变量:月销售额# 按照80%训练集与20%测试集的比例划分数据
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 使用线性回归模型对咖啡店的销售额进行预测训练
revenue_predictor = LinearRegression()
revenue_predictor.fit(X_train, y_train)# 训练好的模型用于预测测试集上的销售额
predictions = revenue_predictor.predict(X_test)# 评估模型性能,计算均方误差(MSE)
mse = mean_squared_error(y_test, predictions)
print(f"模型在测试集上的均方误差(MSE)是: {mse:.2f}")# 输出模型参数,了解各特征对销售额的影响程度
print(f"Coefficients (销售量、广告投入、平均气温对月销售额的影响系数): {revenue_predictor.coef_}")
print(f"Intercept (截距,即当所有特征值为0时的预测销售额): {revenue_predictor.intercept_}")# 假设下个月预计有1500杯的销售量、500元的广告投入,以及20℃的平均气温
next_month_conditions = np.array([[1500, 500, 20]])
predicted_revenue_next_month = revenue_predictor.predict(next_month_conditions)
print(f"根据模型预测,下个月的预期销售额为: {round(predicted_revenue_next_month[0],3)}元")# 可视化分析 - 广告投入与实际月销售额的关系图
plt.figure(figsize=(10, 6))
plt.scatter(data['Advertising'], data['Monthly_Revenue'], color='blue', label='实际数据点')
plt.plot(data['Advertising'], revenue_predictor.predict(data[['Sales', 'Advertising', 'Temperature']]), color='red',label='拟合直线')
plt.xlabel('广告投入')
plt.ylabel('月销售额')
plt.title('广告投入与月销售额关系')
plt.legend()
plt.show()# 可视化分析 - 测试集中真实月销售额与预测月销售额的对比图
plt.figure(figsize=(10, 6))
plt.scatter(y_test, y_test, color='blue', label='实际测试数据点')
plt.scatter(y_test, predictions, color='red', label='预测数据点')
plt.xlabel('实际月销售额')
plt.ylabel('预测月销售额')
plt.title('实际与预测月销售额对比(测试集)')
plt.legend()
plt.show()# 注:在处理特征前,请确保已对不同尺度的特征进行了适当的预处理,如归一化或标准化,以提高模型的准确性。

完成这样预测的好处如下:

前瞻性决策:通过预测未来收入,咖啡店经理小明可以根据预测结果提前做出决策,比如调整库存、安排员工排班、制定营销策略等,以更好地适应预期的销售情况。

资源优化:根据预测收入,可以合理分配和控制成本。例如,在预测销售额较低时减少不必要的广告投入,或在预测销售额较高时增加原料储备,避免断货影响生意。

风险管理:预测有助于识别潜在的风险和机会。如果预测结果显示接下来的月收入可能下滑,小明就可以及时采取措施预防损失;反之,若预测收入增长,他则可抓住机遇进一步扩大市场。

绩效评估:实际收入与预测收入的对比分析可以帮助评估现有策略的效果,并据此改进业务模型。

计划与预算:基于预测数据,小明能够更准确地制定经营计划和财务预算,从而提高整体运营效率和盈利能力。
最终,当那个智能咖啡师——线性回归模型终于冲泡出第一杯“预测销售额”时,你们相视一笑,知道所有的付出都是值得的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/413932.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Yolov8_使用自定义数据集训练模型1

前面几篇文章介绍了如何搭建Yolov8环境、使用默认的模型训练和推理图片及视频的效果、并使用GPU版本的torch加速推理、导出.engine格式的模型进一步利用GPU加速,本篇介绍如何自定义数据集,这样就可以训练出识别特定物体的模型。 《Yolov8_使用自定义数据…

细说JavaScript BOM之window常用子对象

一、location location翻译过来就是位置的意思,打开浏览器窗口大家可以看到导航栏上有一个URL地址。 // 例如 https://www.zhishunet.com// 分心可知,它使用的网络协议是https 服务器名称是 www,zhishunet.comlocation常用对象属性 属性描述search设置…

用Pytorch实现线性回归模型

目录 回顾Pytorch实现步骤1. 准备数据2. 设计模型class LinearModel代码 3. 构造损失函数和优化器4. 训练过程5. 输出和测试完整代码 练习 回顾 前面已经学习过线性模型相关的内容,实现线性模型的过程并没有使用到Pytorch。 这节课主要是利用Pytorch实现线性模型。…

UE5 C++ 学习笔记 UBT UHT 和 一些头文件

总结一些似懂非懂的知识点,从头慢慢梳理。 任何一个项目都有创建这些三个.cs。 这个是蓝图转C 这个是本身就是C项目,应该就是多了一个GameModeBase类 Build.cs包含了每个模块的信息,表明了这个项目用到了哪一些模块。该文件里的using UnrealBuilTool 是…

学习笔记之——3D Gaussian SLAM,SplaTAM配置(Linux)与源码解读

SplaTAM全称是《SplaTAM: Splat, Track & Map 3D Gaussians for Dense RGB-D SLAM》,是第一个(也是目前唯一一个)开源的用3D Gaussian Splatting(3DGS)来做SLAM的工作。 在下面博客中,已经对3DGS进行了…

ELK 分离式日志

目录 一.ELK组件 ElasticSearch: Kiabana: Logstash: 可以添加的其它组件: ELK 的工作原理: 二.部署ELK 节点都设置Java环境: 每台都可以部署 Elasticsearch 软件: 修改elasticsearch主配置文件&…

LeetCode、2462. 雇佣 K 位工人的总代价【中等,最小堆+双指针】

文章目录 前言LeetCode、2462. 雇佣 K 位工人的总代价【中等,最小堆双指针】题目及类型思路及代码实现 资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后…

Linux CentOS stream9 nmcli

nmcli命令是redhat7或者centos7之后的命令,该命令可以完成网卡上所有的配置工作,并且可以写入配置文件,永久生效。 一、前期准备 在讨论、学习与训练nmcli命令前,必须明确几点: 1.开启NetworkManager 使用nmcli命令…

2024.1.19每日一题

LeetCode 2809.使数组和小于等于x的最少时间 2809. 使数组和小于等于 x 的最少时间 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给你两个长度相等下标从 0 开始的整数数组 nums1 和 nums2 。每一秒&#xff0c;对于所有下标 0 < i < nums1.length &#xff0c…

C#开源跨平台的多功能Steam工具箱GitHub加速神器

前言 作为一名程序员你是否会经常会遇到GitHub无法访问(如下无法访问图片)&#xff0c;或者是访问和下载源码时十分缓慢就像乌龟爬行一般。今天分享一款C#开源的、跨平台的多功能Steam工具箱和GitHub加速神器&#xff1a;Watt Toolkit。 项目功能 网络加速、账号切换、库存游…

蓝桥杯(C++ 矩形总面积 错误票据 分糖果1 三国游戏 分糖果2)

目录 一、矩形总面积 思路&#xff1a; 代码&#xff1a; 二、错误票据 思路&#xff1a; 代码&#xff1a; 三、分糖果1 思路&#xff1a; 代码&#xff1a; 四、三国游戏 思路&#xff1a; 代码&#xff1a; 五、分糖果2 思路&#xff1a; 代码&#xff1a;…

最长上升子序列模型(LIS)

最长上升子序列模型就像它的名字一样&#xff0c;用来从区间中找出最长上升的子序列。它主要用来处理区间中的挑选问题&#xff0c;可以处理上升序列也可以处理下降序列&#xff0c;原序列本身的顺序并不重要。 模型 895. 最长上升子序列&#xff08;活动 - AcWing&#xff0…