库存监控 - 异常检测算法

本文探讨了利用非监督学习方法解决零售行业库存监控问题,通过数据整理、探索和模型建立,识别异常库存。重点介绍了数据预处理、EDA和应用孤立森林等异常检测算法来发现滞销产品。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

背景

第一部分 - 数据整理

1. 数据录入

2. 清洗数据

3. 数据调整、聚合

第二部分 - 探索库存数据(EDA)

1. 了解库存整体情况

2. 可视化

第三部分 - 建立模型

1. 数据预处理

2. 建立模型


背景

        对于零售行业来讲,无论是跨境电商还是传统零售商,库存的高低决定企业流动资产的高低,库存的流动速度决定企业现金流动是否健康。不同的企业会有不同的衡量标准,也会在不同的时间段处于不同的状态。财务上有很多指标可以在整个公司的维度监控库存水平高低,但如果细致到SKU这个层面的差异化分析,则会衍生许多标准问题以及工作量。本文旨在探究使用非监督学习的方法,从数据的整理到最终的可视化,如何实现零售行业的库存监控问题。

第一部分 - 数据整理

1. 数据录入

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import gridspec
from math import ceil

# 读取数据
df = pd.read_csv('inventory.csv')

# 由于数据有重复,删除重复的数据(数据中包含产品分仓库的明细数据以及仓库栏为‘All’的加总数据)
df = df[df['Warehouse'] != 'All']

# 显示头5行数据
df.head()
 Part Number        Item Number    Warehouse  Total On Hand  \
0    BAILLIE WALNUT  BF481825.39901727  KY - Hebron              0   
1     BAILLIE BEECH  BF481825.39901731  KY - Hebron              0   
2  NIELSEN BROWN PU  BF763074.46849385  KY - Hebron              0   
3     Scargill Mint  BF767982.46854251  KY - Hebron              0   
4     Scargill Blue  BF767982.46854254  KY - Hebron             34   

   Total Available  Total Unavailable  Total On Transfer  Qty Allocated  \
0                0                  0                  0              0   
1                0                  0                  0              0   
2                0                  0                  0              0   
3                0                  0                  0              0   
4                0                  1                 33              0   

   Total On Order  Qty Received(12 Months)  Qty Shipped (30 Days)  \
0               0                      201                      0   
1               0                        0                      0   
2               0                        0                      0   
3               0                        0                      0   
4               0                      170                      0   

   Qty Reserved  Qty Unpickable  Qty On Hold  Qty Unprocessed Cycle Count  \
0             0               0            0                            0   
1             0               0            0                            0   
2             0               0            0                            0   
3             0               0            0                            0   
4             0               0            1                            0   

   Qty Unprocessed Adjustment  
0                           0  
1                           0  
2                           0  
3                           0  
4                           0  

2. 清洗数据

# 检查数据,清洗
tab_info = pd.DataFrame(df.dtypes).T.rename(index={0:'column Type'}) 
tab_info = tab_info.append(pd.DataFrame(df.isnull().sum()).T.rename(index={0:'null values (nb)'}))
tab_info = tab_info.append(pd.DataFrame(df.isnull().sum()/df.shape[0]*100).T.
                                       rename(index={0: 'null values (%)'}))
tab_info

                
关于商城商品库存监测工具使用方法的几点说明   这个只有几十KB的小程序是自己业余时间写的,功能比较简单,只是定时“扫描”自己关注的商品库存情况,当达到“兑换”条件时进行提醒。在这里把使用时的几点事项说明一下:   1. 压缩包里一共有6个文件,分别是:     百度知道商城商品监测.exe——主程序     Config.txt——配置文件     Folder.wav——声音文件     GREEN.ico——图标文件     RED.ico——图标文件   这5个文件是缺一不可的,其中的Folder.wav文件可以用任意PCM格式的wav文件替换,替换时需保持文件名一致。另外还有一个说明文档Readme.txt。   2. 在使用前,需要在电脑上安装.NET Framework4.0,否则程序无法正常使用。微软官网免费下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=17718   3. 装好.NET Framework4.0后,打开Config.txt文档进行参数的修改。     第1个参数是监测时间间隔参数:TimerInterval,这个参数指定了“多长时间扫描一次”,单位是“秒”,请在“=”后面用半角阿拉伯数字填写;     第2个参数是商品编码:GoodsIDList,这里可以将所有需要“关注”的商品编码依次填写到“=”后面,编码间用英文逗号","隔开,如果您不知道某种商品的编码是多少,可以从知道商城打开这个商品的页面,看看地址栏中的网址,末尾id=后面的数字就是商品编码。     第3个参数是用户名:UserName,请把您的知道用户名填写到“=”后面,以便监测您的财富值变化情况;     第4个参数是声音提示开关:Sound,此处只接受2个值,要么关闭声音“Off”,要么打开声音“On”,填写其它字符是不能关闭提示音的。   4. 运行程序,程序会在右下角系统托盘中显示一个绿色图标,当指定的某种商品符合“兑换”条件时,右下角图标会变为红色,并弹出气球提示,双击红色图标即可激活窗体查看,窗体中用绿色底色标注的商品即为可“兑换”商品,并可通过双击相应行打开商品页面进行“抢购”。如果窗体中有红色底色标注的商品,说明此商品“有货”但您的财富值不够,无法兑换。每次扫描库存后凡无法“兑换”的商品信息会在下次扫描时清空,有库存且有足够财富值兑换的商品信息将保留(每扫描一次 提示一次 增加一行,直至库存减为0)。   5. 点击窗体右上角关闭按钮即可隐藏程序主窗体,只保留右下方系统托盘图标,双击图标即可重新显示窗体,若想完全退出程序,请在右下角托盘图标上点右键,选择“退出程序”。    ★★朋友们反映的问题★★   ◆关于“一直出现提示”的问题:   这个问题预计在下个版本中解决,目前程序中未做设置,只要商品能够“兑换”,哪怕已经“兑换”过一次,也会弹气球提示,提示音可以在Config.txt中修改Sound=Off关闭,但气球提示无法关闭。   ◆关于窗体中商品“经验值”的问题:   这里是我在做窗体界面时写错了,应该写为“财富值”,这个问题之前有几位朋友向我提到过,一直也没改,下个版本一并解决吧!   这是我能想到的一些地方,若朋友们还有其它问题,可以与我邮件联系:805867711@qq.com   希望大家玩得开心!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值