jd_sales_forecast_2017
py文件是一个简单的baseline,ipynb文件均是比赛中的文件,包括特征提取和不同模型的训练等,pics文件夹是一些结果可视化等相关图片,下文是简单记录。
一、简单介绍
- 训练数据
训练数据包含2017-04-30日之前270天之内若干店铺的每日订单量、销售额、顾客数、评价数、广告费用等数据,下架时间在2017-04-30之后或者未下架的商品数据,以及这些店铺2016年6月-2017年1月每月末后90天内的销售额。
- 评测数据
参赛者需要对每个店铺(训练数据中涉及的全部店铺id)在2017-04-30之后90天内的总销售额进行预测。
- 评分标准
二、简要记录
-
feature_extract,最开始逐两月提取(sklearn.ipynb文件内),后逐月提取和逐三月提取,共三种方案。特征基本只做了最简单的提取,没有深入分析,其中品牌(3089种)和分类(310类)进行onehot处理,共计3413个featrues(3413-3089-310=14)。
-
visualization,所有店和单个店,一般存在“双11”和“618”两个高峰。
- 训练,主要分为使用scikit—learn和xgboost两种方案。scikit-learn尝试了regression中大部分模型,结果见下图;xgboost开始自己试着简单调了以下参数,后面主要参考Davut Polat的调参方案,见下图,当然Aarshay Jain的调参方案也非常值得参考。
-
结果,应该说训练尝试了较多的方法,也花费了很长的时间,但是过拟合比较严重,效果并不理想,这其中特征的处理应该是有较大部分原因(毕竟太懒了,时间也有限)。
-
反思,对于时间序列来说,取最后三个月直接作为baseline是一个不错的选择(baseline0.449.py),事实证明也是如此(这也是最好的成绩)。另外当时也是ML刚入门,对各种算法的理解很不够,RNN就更加没有听过,也是有一些遗憾吧。