电商零售商家需求预测及库存优化问题(第1问)

电商零售商家需求预测及库存优化问题
数据和题目来源于 2023 年 MathorCup 高校数学建模挑战赛——大数据竞赛
只有第一问,使用ARIMA做预测,使用聚类算法做特征相似性

1 数据读取和处理

1.1 清除重复值

注意附件4要去重,原来是56条数据,去重后是54条数据。

print(fujian1_df.shape)
fujian1_df = fujian1_df.drop_duplicates()
print(fujian1_df.shape)

print(fujian2_df.shape)
fujian2_df = fujian2_df.drop_duplicates()
print(fujian2_df.shape)

print(fujian3_df.shape)
fujian3_df = fujian3_df.drop_duplicates()
print(fujian3_df.shape)

print(fujian4_df.shape)
fujian4_df = fujian4_df.drop_duplicates()
print(fujian4_df.shape)
(331336, 5)
(331336, 5)
(2302, 4)
(2302, 4)
(37, 4)
(37, 4)
(56, 3)
(54, 3)

1.2 数据合并,后面可能会用到

merged_df= pd.DataFrame()
merged_df = pd.merge(fujian1_df, fujian2_df, on='product_no', how='inner')
merged_df = pd.merge(merged_df, fujian3_df, on='seller_no', how='inner')
merged_df = pd.merge(merged_df, fujian4_df, on='warehouse_no', how='inner')
merged_df.sort_values(by='date', ascending=True, inplace=True)
merged_df.shape

合并完数据是33w条数据,13维特征。

2 使用ARIMA模型做预测

每个组合单独预测模,总共1996条数据,每个数据单独做一个模型训练和预测,速度可以接受。

遍历每个组

i=0
for group_key, group_data in grouped:
    seller_no, product_no, warehouse_no = group_key
    # 拟合ARIMA模型
    model = sm.tsa.ARIMA(group_data['qty'], order=(1, 1, 1))

    # 训练模型
    model_fit = model.fit()

    # 使用模型进行未来15天的销量预测
    forecast = model_fit.forecast(steps=15)

    # 将预测结果存储在DataFrame中,其中包含日期和销量
    forecast_df = pd.DataFrame({'seller_no':seller_no,'product_no1':product_no,
                                'warehouse_no1':warehouse_no,'date':future_dates,
                                'qty': forecast})
    combined_lis.append(forecast_df)
    if i % 200 ==0:
        print(i)
    i+=1
combined_df = pd.concat(combined_lis)
combined_df.to_excel("预测结果1.xlsx")

结果保存到excel表格中,如:
在这里插入图片描述

3 使用聚类算法做特征相似度

另外请讨论:根据数据分析及建模过程,这些由商家、仓库、商品形成的时间序列如何分类,使同一类别在需求上的特征最为相似?

3.1 先将数据转换为1996*166的格式

总共1996个组合,每个组合166条过去数据,需要先转换为1996*166的形式

for group_key, group_data in grouped:
    seller_no, product_no, warehouse_no = group_key
    date_qty_df = group_data[['date','qty']]
    new_name = seller_no + "+" + product_no + "+" + warehouse_no
    date_qty_df = date_qty_df.rename(columns={'qty': new_name})

    # 进行列拼接,合并到 combined_data 中
    date_qty_df_all = pd.merge(date_qty_df_all, date_qty_df, on='date', how='inner')
    
    if i % 200 ==0:
        print(i)
    i+=1

3.2 使用聚类算法

遍历不同的簇数

for n_clusters in cluster_range:
    kmeans = KMeans(n_clusters=n_clusters, random_state=0)
    cluster_labels = kmeans.fit_predict(X)
    silhouette_avg = silhouette_score(X, cluster_labels)
    silhouette_scores.append(silhouette_avg)

# 绘制轮廓分数与簇数的关系图
#plt.figure(figsize=(10, 6))
plt.plot(cluster_range, silhouette_scores, marker='o')
plt.xlabel('簇数 (K)')
plt.ylabel('轮廓分数')
plt.title('K均值聚类 - 调节簇数')
plt.grid(True)
plt.show()

在这里插入图片描述
发现数目为5的时候效果最好

3.3 绘制显示每个类别的各个特征的权重

先将1996条数据按照商品编码3个信息划分到不同的类别,然后使用饼状图显示每个类别各个特征的权重绘图。
类别0的图像在这里插入图片描述后续再具体分析。完整代码:https://docs.qq.com/doc/DWEtRempVZ1NSZHdQ

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一文搞懂“支付·清结算·账务”全局

《上帝视角看支付,总架构解析》 对支付的宏观层面做了分析,详解了整个支付体系每一层的架构和业务模型,而每一层的企业内部支付体系建设是什么样的?会涉及到哪些环节和系统?每个系统会涉及到哪些单据和逻辑&#xff0c…

如何使用 Docker 搭建 Jenkins 环境?从安装到精通

不少兄弟搭 jenkins 环境有问题,有的同学用 window, 有的同学用 mac, 有的同学用 linux。 还有的同学公司用 window, 家里用 mac,搭个环境头发掉了一地。。。 这回我们用 docker 去搭建 jenkins 环境,不管你是用的是什么系统&…

KaiwuDB 亮相第四届跨国公司领导人青岛峰会

10月10日至12日,由商务部和山东省人民政府共同主办的第四届跨国公司领导人青岛峰会在青岛国际会议中心举办。该峰会为跨国公司打造的国家级开放平台,是聚集跨国公司与中国合作、专注跨国公司议题、分享跨国公司经验、链接资源、促进合作的重大活动。Kaiw…

4.多层感知机-2简化版

#pic_center R 1 R_1 R1​ R 2 R^2 R2 目录 知识框架No.1 多层感知机一、感知机1、感知机2、训练感知机3、图形解释4、收敛定理5、XOR问题6、总结 二、多层感知机1、XOR2、单隐藏层3、单隐藏层-单分类4、为什么需要非线性激活函数5、Sigmoid函数6、Tanh函数7、ReLU函数8、多类分…

Spring cloud教程Gateway服务网关

Spring cloud教程|Gateway服务网关 写在前面的话: 本笔记在参考网上视频以及博客的基础上,只做个人学习笔记,如有侵权,请联系删除,谢谢! Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,…

如何将你的PC电脑数据迁移到Mac电脑?使用“迁移助理”从 PC 传输到 Mac的具体操作教程

有的小伙伴因为某一项工作或者其它原因由Windows电脑换成了Mac电脑,但是数据和文件都在原先的Windows电脑上,不知道怎么传输。接下来小编就为大家介绍使用“迁移助理”将你的通讯录、日历、电子邮件帐户等内容从 Windows PC 传输到 Mac 上的相应位置。 在…

Leetcode刷题详解——下降路径最小和

1. 题目链接:931. 下降路径最小和 2. 题目描述: 给你一个 n x n 的 方形 整数数组 matrix ,请你找出并返回通过 matrix 的下降路径 的 最小和 。 下降路径 可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择…

UML—时序图是什么

目录 前言: 什么是时序图: 时序图的组成元素: 1. 角色(Actor) 2. 对象(Object) 3. 生命线(LifeLine) 4. 激活期(Activation) 5. 消息类型(Message) 6.组合片段(Combined fragment) 时序图的绘制规则:​ 绘制时序图的3步: 1.划清边界&#xf…

redis-集群切片

切片集群 我曾遇到过这么一个需求:要用 Redis 保存 5000 万个键值对,每个键值对大约是 512B,为了能快速部署并对外提供服务,我们采用云主机来运行 Redis 实例,那么,该如何选择云主机的内存容量呢&#xff…

linux目录与文件管理

目录与路径 关于执行文件路径的变量:$PATH ls完整文件名为:/bin/ls 在任何文件夹下输入ls命令可以显示出一些信息而不是找不到命令,这就是因为环境变量PATH所致。在执行命令时,系统会依照PATH的设置去每个PATH定义的目录下查找文…

【mysql】实现设置表中所有数据的update_time,要求每1000条设置在一天

实现效果示例 执行SQL:(mysql 版本查看: select VERSION() :5.7.36-log) 实现效果: 这里最后一个id 9 > 总条数 6,所以没有更新到,直接手动补下就行 SELECT * FROM my_test S…

最新ai系统ChatGPT商业运营版网站源码+支持GPT4.0/支持AI绘画+已支持OpenAI GPT全模型+国内AI全模型+绘画池系统

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

全平台七合一万能DIY小程序源码系统 带完整搭建教程

近年来互联网技术的飞速发展,尤其是移动互联网的普及。随着微信、支付宝、百度、抖音、头条等平台的迅速崛起,小程序成为了这些平台上重要的应用形态。这些小程序的应用范围广泛,包括电商、教育、娱乐、生活服务等各个领域。然而,…

常用排序算法

目录 直接插入排序 希尔排序 ​编辑 选择排序 堆排序 冒泡排序 快速排序 hoare版 挖坑法 前后指针法 非递归 归并排序 非递归 计数排序 直接插入排序 直接插入排序跟依次模扑克牌一样,将最后一张牌依次与前面的牌比较,最后将牌插入到指定位…

【设计模式】第16节:行为型模式之“命令模式”

一、简介 命令模式:将请求(命令)封装为一个对象,这样可以使用不同的请求参数化其他对象(将不同请求依赖注入到其他对象),并且能够支持请求(命令)的排队执行、记录日志、…

分布式理论和分布式锁知识点总结

文章目录 (一) 分布式理论算法和协议1)CAP理论总结 2)BASE理论BASE 理论的核心思想基本可用软状态最终一致性 3)Paxos算法Basic Paxos 算法4) Raft算法1 拜占庭将军 5)Gossip协议 (二) 分布式锁分布式锁应该具备哪些条…

Vue使用 IndexDB vue操作IndexDB数据库 Vue操作IndexDB数据库

Vue使用 IndexDB vue操作IndexDB数据库 Vue操作IndexDB数据库 Vue使用 IndexDB vue操作IndexDB数据库 Vue操作IndexDB数据库安装 IndexDB类库引入 localForage测试 新增数据、获取数据 Vue使用 IndexDB vue操作IndexDB数据库 Vue操作IndexDB数据库 大部分场景使用 LocalStore都…

mac m1下navicat执行mongorestore 到mongodb

首先,下载https://www.mongodb.com/try/download/mongocli 解压缩后 有可执行文件使用navicat打开 加载后再重新点击 选择 要恢复的文件即可

Vue之CSS基础

CSS:层叠样式表 1、选择器 从模板template中选择某元素进行样式设置 需要注意的是作用域到底是当前模板还是整个html文档 1.1 基础(单一)选择器 标签、类、 id、通配符 标签、直接使用标签名,比如div,span… 优点:全选 模板中的名{。。。}…

数字化时代,谈谈无处不在的大数据和商业智能BI的关系

随着数字化时代的正式到来,众多领域开展了新一轮的科技革命和产业革命,通过大数据或商业智能BI等数据类技术解决方案,完成了从业务、产品到经营模式、管理决策的全方位升级,获得了突破性的成长。 如今,大数据和商业智…