赛题地址:http://tianchi.aliyun.com/competition/information.htm?spm=5176.100067.5678.2.VZW16k&raceId=3
登录就可以下载数据
题目一句话:依据13年7月到14年8月的申购赎回数据预測14年9月每一天的申购赎回数据。
算法问题:此题能够使用线性回归和时间序列预測,仅仅要特征好效果都还能够。我们使用的是R以下的随机森林+LM 。决赛仅仅有4次提交机会,第一次我们26名,后面每天都降,这些火箭简直太可怕了,最后天我们运气好稳定在了47名。后来问过那些火箭才知道他们使用的是STL时间序列预測,由于这种方法预測的值偏大。刚好答案也是偏大。所以会出现大量火箭。
预处理问题:题目给出的是每天用户的操作数据。我们须要按日期汇总为申购赎回数据,由于提交结果也是按天的
汇总下来好像是427条,观察之后能够发现13年到14年前期都不太稳定。所以我们能够取稳定后的数据,3-8或者4-8月都能够。
另外既然取了3-8月的数据,就代表没有去年国庆前期的数据了,这个问题比較大,由于须要预測14年9月的。9月末的数据跟13年9月的数据趋势有相关性。可是13年9月的数据变化比較剧烈,由于比赛不准单点。没法自己去插入14年9月30号这天的数据,怎么办呢?我们前期測了下20140930的值,和9月29的值比例大概是11:9-11:8的样子。所以我们手动在训练集中插入了一调20130930的申购赎回数据来拟合14年预測结果。不知道这样还算不算调单点?
特征问题:官方给出的baseline是使用了星期的7个特征使用LM建模。我们分析过数据后发现跟星期并没强烈相关性。反而更上班休假有强烈相关性(第一赛季事实上是跟股票有强烈相关,第二赛季数据量大倒没多大影响了)
所以我们设计了例如以下特征:
--一周正常第1/5天上班, 周末第1/2天,休假第1/3天,休假前/后正常上班的一天
--上班前一天休假,工作日。休假,月初月中月末(10天周期),每月第一天
--上一个波峰/波谷是几天前
--上班最后天后要放几天假(2-3,7 3个01特征)
--上班第一天前放了几天假(2-3 2个01特征)
--两天的假,三天的假
--周日补班
-- 股票波浪理论。135浪
另外全部特征均为01特征。为什么这样做大家能够自行思考下。
当中19个特征在part1的时候纯lm能够达到203分
全部特征在PART2的时候lm+RF能够达到201分