总体概况
predict future sales
描述
这次比赛是“如何赢得数据科学竞赛”Coursera 课程的期末项目。
在这次比赛中您将使用包含每日销售数据的具有挑战性的时间序列数据集
由俄罗斯最大的软件公司提供-[1C](English (1c.ru))
我们要求您预测下个月每种产品和商店的总销售额。
通过完成本次竞赛,您将能够应用和增强您的数据科学技能。
评估结果
提交内容通过均方根误差 (RMSE) 进行评估
真实目标值被限制在 [0,20] 范围内。
对于测试集中的每个 id,您必须预测销售总数。该文件应包含标头并具有以下格式:
1 | ID,item_cnt_month |
数据集描述
为您提供每日历史销售数据,
任务是预测测试集每家商店销售的产品总量
请注意,商店和产品列表每个月都会略有变化
创建一个可以处理此类情况的强大模型是挑战的一部分。
文件说明
sales_train.csv
-训练集,记录从2013.1-2015.10的历史每日销量数据test.csv
-测试集,你需要预测这些商店以及商品在2015.11的销售数据sample_submission.csv
-一个正确的答案提交格式文件items.csv
-有关商品/产品的补充信息shops.csv
-商店的补充信息
数据说明
ID
表示测试集中的(shop,item)编号shop_id
- 一个商店独特的iditem_id
- 一个产品独特的iditem_category_id
- 产品类型独特iditem_cnt_day
- 产品的销售数量,这也是你需要预测的东西item_price
- 产品的价格date
- 日期格式为 dd/mm/yyyydate_block_num
- 用于方便的连续月份,比如2013.1表示0, 2013.2表示1 (这个倒是挺人性化的)item_name
- 产品名称shop_name
商店名称item_category_name
- 产品类型的名称
该数据集允许用于任何目的,包括商业用途。
大佬解决方案
(Predict Future Sales | Kaggle)
翻译一下
终于在经过三个月的数据分析以及写代码过后,我在这次预测未来销量
的kaggles比赛中取得了榜首的名次
因此,我打算开源我的这次比赛notebook.
在分享notebook之前,我想简短的向你们介绍一下我的方法
特征工程
对于时间序列的竞赛而言,选取好的特征是极其重要的
在这次比赛中,PS4卖的很多,因此拥有一个能够满足这一需求的功能确实很有帮助
这里有很多东西要讲,但我建议你们先阅读这两个discussion
这两个讨论抓住了特征工程和其他方面的要点
模型
你的模型应该结合数据. 如果是垃圾数据那么就会有垃圾产出
在应用机器学习模型之前,认真去理解数据,理解你机器学习算法是如何工作的
比如 LGBM,XGB这些梯度增强算法在趋势的感知方面很差,但是它们很擅长感知季节性,
商品打折等等.您可以添加一些特征来帮助梯度增强树捕捉趋势。
在kaggle中写了很多这样的文章
所以我使用了两个LGBM模型和一个Xgboost模型,使用堆叠方法得到了很好的结果。
下图显示了我的结果
分析
balabla一大堆