Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析

在数据科学学习之旅中,我经常处理日常工作中的时间序列数据集,并据此做出预测。

由Kaizong Ye,Liao Bao撰写

我将通过以下步骤:

探索性数据分析(EDA)

  • 问题定义(我们要解决什么)
  • 变量识别(我们拥有什么数据)
  • 单变量分析(了解数据集中的每个字段)
  • 多元分析(了解不同领域和目标之间的相互作用)
  • 缺失值处理
  • 离群值处理
  • 变量转换

预测建模

  • LSTM
  • XGBoost


问题定义

我们在两个不同的表中提供了商店的以下信息:

  • 商店:每个商店的ID
  • 销售:特定日期的营业额(我们的目标变量)
  • 客户:特定日期的客户数量
  • StateHoliday:假日
  • SchoolHoliday:学校假期
  • StoreType:4个不同的商店:a,b,c,d
  • CompetitionDistance:到最近的竞争对手商店的距离(以米为单位)
  • CompetitionOpenSince [月/年]:提供最近的竞争对手开放的大致年份和月份
  • 促销:当天促销与否
  • Promo2:Promo2是某些商店的连续和连续促销:0 =商店不参与,1 =商店正在参与
  • PromoInterval:描述促销启动的连续区间,并指定重新开始促销的月份。

利用所有这些信息,我们预测未来6周的销售量。

 

在训练集中,我们有1017209个观察值和9列/变量。
在测试集中,我们有41088个观测值和8列/变量。
在商店集中,我们有1115个观察值和10列/变量。

首先让我们清理  训练数据集。


热门课程

R语言数据分析挖掘必知必会

面对扑面而来的数据浪潮,包含Google、Facebook等国际企业,都已采用R语言进行数据分析

探索课程

 

让我们从第一个变量开始->  销售量

 

看一下顾客变量

我们看一下假期 变量。

让我们继续进行商店分析

让我们从缺失的数据开始。第一个是 CompetitionDistance

让我看看异常值,因此我们可以在均值和中位数之间进行选择来填充NaN
 

缺少数据,因为商店没有竞争。 因此,我建议用零填充缺失的值。

让我们看一下促销活动。

如果未进行促销,则应将“促销”中的NaN替换为零 

我们合并商店数据和训练集数据,然后继续进行分析。

第一,让我们按销售量、客户等比较商店。

从图中可以看出,StoreType A拥有最多的商店,销售和客户。但是,StoreType D的平均每位客户平均支出最高。只有17家商店的StoreType B拥有最多的平均顾客。

我们逐年查看趋势。

我们看一下相关图。

我们可以得到相关性:

  • 客户与销售(0.82)
  • 促销与销售(0,82)
  • 平均顾客销量 vs促销(0,28)
  • 商店类别 vs 平均顾客销量 (0,44)

我的分析结论:

  • 商店类别 A拥有最多的销售和顾客。
  • 商店类别 B的每位客户平均销售额最低。因此,我认为客户只为小商品而来。
  • 商店类别 D的购物车数量最多。
  • 促销仅在工作日进行。
  • 客户倾向于在星期一(促销)和星期日(没有促销)购买更多商品。
  • 我看不到任何年度趋势。仅季节性模式。

可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498