Kaggle[4] - Online Product Sales
来源:互联网 发布:抽象工厂java 编辑:程序博客网 时间:2024/06/02 06:32
比赛链接:https://www.kaggle.com/c/online-sales
比赛内容是这样的:给定一个数据集,每行代表一个商品,前12个属性表示1-12个月该商品的销量,然后后面546个是该商品的一些特征(很稀疏,可能就跟文本分类一样,特征空间很大,商品包含或者不包含这个特征)。比赛提供了training data。最终是要预测新商品的1-12个月的销量。评判标准是12个月的RMSLE的和。
题目差不多说清楚了,首先分析一下,如何预测销量。
首先这很明显是一个回归问题,需要预测的是1-12个月的销量。但是他这里一共有12个月的销量,所以我们可以对每个月的销量,都构建一个回归模型。
能用的回归模型太多了,这里就不细细分析了。比赛中,大部分人用的是GBM,也有一些融合了Cubic spline、RF等。
先看看第一名的做法:
1. 将categorical的特征改成dummy的.(比如1->(1,0,0) 2->(0,1,0) ,3->(0,0,1))。 然后把出现次数很少的特征去掉(因为特征比较稀疏)
2. 用median填充NA的数据
3. 使用一些日期特征,包括预售和正式发售时间差,年月等数据。
下面主要模型用的是GBM。具体建模的时候,作者尝试了2种办法。1. stochastic gradient boosting 2. variable subsampling
因为作者使用的GBM版本其实是以决策树为base learner的,同时,他发现,GBM模型的variance越小,最后的结果也越好。因此他尝试了以上两种算法来试图减小variance。
具体如何做呢?
1. 看到stochastic我们就知道这是随机化, 因此我们每次循环中,建树的时候,可以随机抽取一定比例的样本作为training data。
2. variable sampling 其实跟随机森林中一样,当我们要split的时候,随机选择k个特征进行split。
可以看到,前者是抽取样本,后者是抽取特征。当然也可以两者结合起来。 另外OOB样本也可以帮助我们检验树是否好。
最终是variable sampling的效果最好。
第二名的做法和第一名差不多,不过他没有用variable sampling, 而是用的GAM做一些简单的融合。加入了三次样条拟合还有RF等回归模型。
剩下的人大部分用的是各种各样的blending, 但是效果都不好。
从这个比赛可以看出,直觉很重要。1st把RMSE和variance结合起来,然后找寻减小variance的方法,最终发现改进variable sampling可以做到,拿到第一名,整个思路下来还是很值得我们学习的。
- Kaggle[4] - Online Product Sales
- Product Cost by Sales Order
- Product Cost by Sales Order
- Historical Sales and Active Inventory kaggle
- CO--Product Cost by Sales Order
- Kaggle | Santander Product Recommendation比赛总结
- UVa Online Judge 12532 - Interval Product
- Kaggle
- KAGGLE
- kaggle
- Timus Online Judge初级题目:1014. Product of Digits
- Kaggle比赛-Otto Group Product Classification-打败一半参赛队伍的简单解法
- kaggle实例学习-Titanic(4)
- product
- Product
- Product
- Product
- Product
- 二:1.mysql yum 安装
- android camera(四):camera 驱动 GT2005
- ImageView
- 14 PHP 递归函数 fibonacci数列
- D3D9中如果不用D3DX函数库怎么加载纹理 [复制链接] fg5823820 骑都尉(从五品) Rank: 9Rank: 9Rank: 9 注册时间2011-12-28积分217 串个门加好友打招
- Kaggle[4] - Online Product Sales
- HDFS的Java访问接口
- uitableview学习---1
- 《The Swift Programming Language》的笔记-第28页
- Linux文件
- OCP 1Z0 053 134
- cocos2d-x 2.x 和cocos2d-x 3.x android.mk的一件打包自动编译修改后的源码
- 高精度非负整数
- 使用require.js 的r.js 对css的压缩方案