/jd_sales_forecast_2017

京东金融2017店铺销量比赛

Primary LanguageJupyter Notebook

jd_sales_forecast_2017

py文件是一个简单的baseline,ipynb文件均是比赛中的文件,包括特征提取和不同模型的训练等,pics文件夹是一些结果可视化等相关图片,下文是简单记录。

一、简单介绍

  1. 训练数据

训练数据包含2017-04-30日之前270天之内若干店铺的每日订单量、销售额、顾客数、评价数、广告费用等数据,下架时间在2017-04-30之后或者未下架的商品数据,以及这些店铺2016年6月-2017年1月每月末后90天内的销售额。

  1. 评测数据

参赛者需要对每个店铺(训练数据中涉及的全部店铺id)在2017-04-30之后90天内的总销售额进行预测。

  1. 评分标准

二、简要记录

  1. feature_extract,最开始逐两月提取(sklearn.ipynb文件内),后逐月提取逐三月提取,共三种方案。特征基本只做了最简单的提取,没有深入分析,其中品牌(3089种)和分类(310类)进行onehot处理,共计3413个featrues(3413-3089-310=14)。

  2. visualization,所有店和单个店,一般存在“双11”和“618”两个高峰。

  1. 训练,主要分为使用scikit—learnxgboost两种方案。scikit-learn尝试了regression中大部分模型,结果见下图;xgboost开始自己试着简单调了以下参数,后面主要参考Davut Polat的调参方案,见下图,当然Aarshay Jain的调参方案也非常值得参考。

  1. 结果,应该说训练尝试了较多的方法,也花费了很长的时间,但是过拟合比较严重,效果并不理想,这其中特征的处理应该是有较大部分原因(毕竟太懒了,时间也有限)。

  2. 反思,对于时间序列来说,取最后三个月直接作为baseline是一个不错的选择(baseline0.449.py),事实证明也是如此(这也是最好的成绩)。另外当时也是ML刚入门,对各种算法的理解很不够,RNN就更加没有听过,也是有一些遗憾吧。