天天看点

2016中国高校计算机大赛——大数据挑战赛季军:Heal the World团队

2016中国高校计算机大赛大数据挑战赛上,heal the world团队对阿里音乐流行趋势预测展示了自己的比赛成果。主要从问题分析开始谈起,确定解题思路,重点分享了分类与预测,进行了五步分离,最后做了简要总结。擦亮眼睛快看看吧。

问题分析

此次比赛给出了1000位艺人在2015年3月1日至2015年8月30日之间的所有歌曲数据以及相关用户的行为。要求预测9、10月份的艺人所有歌曲的播放量。

2016中国高校计算机大赛——大数据挑战赛季军:Heal the World团队

但是我们发现,预测的数值在一个比较短的时间以后都是一个常数。这启发我们直接利用一个常数作为预测。我们认为最后两个星期的水平最能反映9、10月份大致水平,所以选择最后两个星期均值作为基准。我们发现均值预测稍优于模型,所以抛弃用模型预测的思路。

解题思路

2016中国高校计算机大赛——大数据挑战赛季军:Heal the World团队

显然尾部14天预测没有考虑播放量时间序列所体现的特点。所以我们将重点放在寻找播放量时间序列的特点,并根据这些特点给出不同的预测方案。

分类与预测

我们认为艺人播放量时间序列8月份的走势和状态,最能体现9、10月份的基本水平和走势。所以我们根据8月份时间序列体现特点,将艺人进行划分。

对于那些尾部存在明显趋势的艺人,将最后14天均值作为预测肯定不准确。所以我们按照8月份时间序列走势特点的强烈程度,一步步将艺人分离出来

2016中国高校计算机大赛——大数据挑战赛季军:Heal the World团队

分离思路:对于十四均值基准分,我们能按照时间序列特点修改就修改,不能修改维持基准不变。

<b>第一步分离</b><b></b>

2016中国高校计算机大赛——大数据挑战赛季军:Heal the World团队

从图中可以看出:

1. 五月份的均值明显大于最后一个星期的均值;

2.最后一个星期的均值大于倒数第二个星期;

3.倒数第二个星期的均值大于倒数第三个星期。

我们将播放量预测数值降低以后,分数明显上升。这也是突破十四天均值分数瓶颈的第一步。

2016中国高校计算机大赛——大数据挑战赛季军:Heal the World团队

图中可以看出:

1. 七月,八月最大值出现在0821-0830;

2.最大值明显大于0721-0821区间的均值;

3.最大值出现到0830之间均值大于0701-0821区间的均值;

4.最后一个值明显大于0701-0821区间的均值比。

2016中国高校计算机大赛——大数据挑战赛季军:Heal the World团队

8个周内,每周总有一个天是最大值。将出现最大值的那一天拉高,其它时间拉低。最后两个周这个星期的均值具有周期趋势,最后两个周的中位数不具周期趋势。

这三类艺人在总的艺人里面大概占200个人左右。将这三类艺人的预测修改以后,分值上升5000分左右。对分值上升贡献最大的类。

<b>第二步分离</b><b></b>

考虑到如果在我们取基准分的最后14天里出现一些异常高的点,这会将我们的预测数值抬高,影响预测精度。将预测数值恢复到一个正常的水平,我们还有提高分数的空间。

2016中国高校计算机大赛——大数据挑战赛季军:Heal the World团队

我们将异常分为三类:

1.      

第一类异常:最后一个星期最大值明显大于最后一个星期中位数,同时最后一个星期最大值明显大于0803至0817的均值;

2.      

第二类异常:倒数第二个星期最大值明显大于倒数第二个星期中位数,同时倒数第二个星期最大值明显大于0803至0817的均值;

3.      

第三类异常:前两种异常同时出现。

<b>第三步分离</b><b></b>

暑假中呈现的状态是暑假导致的,与暑假之前的状态存在明显差异。暑假一旦结束,时间序列就进入出另外的一种状态。

2016中国高校计算机大赛——大数据挑战赛季军:Heal the World团队

0718-0830之间均值与0517-0717之间均值存在明显差异,如果暑假尾部出现下降趋势,就逐渐下降,如果没有明显趋势,就用最后期限均值×0.9×0.95等给出下降数。

<b>第四步分离</b><b></b>

如果时间序列一种趋势存在比较长的时间,那么我们认为在9、10月份还会存在这种趋势。

上升趋势有三类:

1. 第一类上升:六个月每月均值都比前一个月数值大,六个月持续上升;

2. 第二类上升:最后三个月每月均值都比前一个月数值大,三个月明显上升;

3. 第三类上升:最后三个星期每星期均值都比前一个月数值大,最后三个星期明显上升。

对此,我们采取了相应的措施:

第一类:最后一个星期均值,最后一个月中位数×(1+六个月平均增长率);

第二类:最后一个星期的均值,最后一个月中位数×(1.1);

第三类:最后一个星期的均值,最后一个星期的均值×(1.05)。

<b>第五步分离</b><b></b>

将前面那些尾部特点最明显的艺人去除以后,还剩下大概500个艺人。这500个艺人表现出的尾部特征并不明显,所以我们按照尾部两个星期的状况分成三类,然后给出预测方案。

1.第一类:最后两天均值明显大于最后一个星期均值;

2.第二类:最后两天与最后一个星期均值无明显差异;

3.第三类:最后两天明显小于最后一个星期均值;

预测方案如下:

第一类:最后一个星期的1.05倍,最后一个星期的1.05×1.05倍;

第二类:最后一个星期的数值;

第三类:最后两个星期的数值。

总结

根据有限的数据来预测60天正常的数据,我们直接从模型时间序列所表现出的特点来给出预测结果,避免了全是常数的尴尬,。只要准则和特征选取的好,就能将艺人分开得出不同的预测,用简单的sql语句就能实现。

模型只是一种工具,在数据挖掘过程中,我们应该花很多的时间在揣摩业务数据的特点和实际含义。

模型只是一种工具,真正的数据处理者应该花很多的时间在揣摩业务数据的特点和实际含义。

参加天池大赛更像是在黑暗中不断的摸索。没人告诉你什么样的方法才是最好的,什么样的方法才能击败你的对手。必须不断找到新的方法,突破瓶颈。对那些挫折你必须保持耐心,你只能揣着比赛过程中的小小惊喜,跌跌撞撞地迎来光明的那一刻。多一些等待,总会有收获意外惊喜的那一天。

继续阅读