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

news2025/1/7 22:41:33

有一天,小明带着一脸期待找到了你这位数据分析大师。他掏出手机,屏幕上展示着一份详尽的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.coloradmin.cn/o/1402226.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

踏上职业征程的第一步——选择理想城市迎接大学生求职新起点

概要💁🏻 "嘿,这个话题我早就想聊聊了。感觉现在好多同学在找工作时,签约和工作地点的选择都有点盲目。很少有人主动考虑自己喜欢哪个城市,所以我想说说这个。当然,纯属个人看法,大家随便吐…

模型的 PSI(Population Stability Index)

PSI(Population Stability Index)是一种用于评估两个数据集或时间点之间的分布变化的指标。它常用于监测模型在不同时间段或不同群体上的稳定性。PSI的计算基于两个分布的累积分布函数(CDF)之间的差异。 在模型监测和评估的背景下…

Django(九)

1. 用户登录-Cookie和Session 什么是cookie和session? 发送HTTP请求或者HTTPS请求(无状态&短连接) http://127.0.0.1:8000/admin/list/ https://127.0.0.1:8000/admin/list/http无状态短连接:一次请求响应之后断开连接,再发请求重新连…

Keepalived实现nfs高可用

Keepalived实现nfs高可用 Nfs_master服务器:172.20.26.167 (keepalived、nfs、sersync、rsync) Nfs_salve服务器:172.20.26.198 (keepalived、nfs、rsync) Nfs_client服务器:172.20.26.24 …

LeetCode面试题05.06

美好的一天,从力扣开始 王子公主请看题 整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。 示例1: 输入:A 29 (或者0b11101), B 15(或者0b01111)输出:2示例2: 输…

Python爬虫--5

1、异步爬虫 异步爬虫的方式: (1)多线程,多进程(不建议使用) 好处:可以为相关阻塞的操作单独开启线程或者进程,阻塞操作就可以异步执行。 弊端:无法无限制的开启多线程…

Docker安装配置OnlyOffice

OnlyOffice 是一款强大的办公套件,你可以通过 Docker 轻松安装和部署它。本文将指导你完成安装过程。 步骤 1:拉取 OnlyOffice Docker 镜像 首先,使用以下命令从 Docker Hub 拉取 OnlyOffice Document Server 镜像: sudo docke…

【代码随想录09】28. 找出字符串中第一个匹配项的下标 459. 重复的子字符串

目录 28. 找出字符串中第一个匹配项的下标题目描述参考代码 459.重复的子字符串题目描述参考代码 28. 找出字符串中第一个匹配项的下标 题目描述 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08…

Spring Boot3.2.2整合MyBatis Plus3.5.5

目录 1.前置条件 2.导坐标 3.配置数据源 4.配置mapper扫描路径 5.MyBatis Plus代码生成器整合 1.导坐标 2.编写代码生成逻辑 1.前置条件 已经初始化好一个spring boot项目且版本为3X&#xff0c;项目可正常启动 2.导坐标 <dependency><groupId>com.baomid…

深入了解性能优化(web应用)

影响一个系统性能的方方面面 一个 web应用不是一个孤立的个体,它是一个系统的部分,系统中的每一部分都会影响整个系统的性能 一.常用的性能评价/测试指标 1.响应时间 提交请求和返回该请求的响应之间使用的时间,一般比较关注平均响应时间。 常用操作的响应时间列表: 操作 响应…

在达沃斯,人工智能引发的乐观情绪可谓一分为二

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

动手做个无人机—材料篇

基于浙江大学Fast-Lab(高飞&#xff0c;潘能)和深蓝学院合作课程&#xff1a;第二课&#xff1a;动力套焊接_哔哩哔哩_bilibili 无人机材料1&#xff1a; 1、NUC 猛虎峡谷 准系统 i5薄款&#xff1a; 一款机载电脑&#xff0c;使用i5-1135G7 &#xff0c;最大内存64G&#xff…

java-BigDecimal

为什么浮点数 float 或 double 运算的时候会有精度丢失的风险呢&#xff1f; 这个和计算机保存浮点数的机制有很大关系。我们知道计算机是二进制的&#xff0c;而且计算机在表示一个数字时&#xff0c;宽度是有限的&#xff0c;无限循环的小数存储在计算机时&#xff0c;只能被…

数据结构--数组和广义表

1. 数组的定义 略 2. 数组的顺序表示 由于数组定义后&#xff0c;数组的维度和每维的长度就不再改变&#xff0c;其结构是固定的&#xff0c;因此一般采用顺序存储结构。 3. 特殊矩阵的压缩矩阵 4. 广义表的定义和抽象操作 广义表一些操作可以看数据结构--广义表_空广义表的…

机器学习:BootStrapping(Python)

import numpy as np import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.decomposition import PCA # 主成分分析 from sklearn.preprocessing import LabelEncoder, StandardScaler # 类别标签编码&#xff0c;标准化处理 import matplo…

uniapp组件库SwipeAction 滑动操作 使用方法

目录 #平台差异说明 #基本使用 #修改按钮样式 #点击事件 #API #Props #Event 该组件一般用于左滑唤出操作菜单的场景&#xff0c;用的最多的是左滑删除操作。 注意 如果把该组件通过v-for用于左滑删除的列表&#xff0c;请保证循环的:key是一个唯一值&#xff0c;可以…

k8s 使用tomcat官方镜像部署集群并解决访问页面404

一、集群节点配置&#xff1a; master:192.168.206.138 k8s-node1:192.168.206.136 k8s-node2:192.168.206.137 二、下载一个Tomcat镜像 docker pull tomcat docker images | grep tomcat docker tag docker.io/tomcat tomcat 三、根据官方镜像自己构建一个一次性就能启动的…

怎样的安全数据交换系统 可以支持信创环境?

首先&#xff0c;我来看看&#xff0c;什么是安全数据交换系统&#xff1f;安全数据交换系统是一种专门设计用于在不同网络环境之间安全传输数据的技术解决方案。它确保数据在传输过程中的完整性、机密性和可用性&#xff0c;同时遵守相关的数据保护法规和行业标准。 那么&…

笔试面试题——二叉树进阶(一)

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、根据二叉树创建字符串1、题目讲解2、思路讲解3、代码实现 二、二叉树的分层遍历1、题目讲…

docker使用http_proxy配置代理

钢铁知识库&#xff0c;一个学习python爬虫、数据分析的知识库。人生苦短&#xff0c;快用python。 在内网服务器中&#xff0c;docker经常需要下载拉取镜像&#xff0c;但由于没有网络要么只能手动导入镜像包&#xff0c;又或者通过http_proxy代理到其它服务器下载。 解决方法…