赛题介绍
阿里音乐用户的历史播放数据
预测阿里音乐平台艺人的未来60天的播放量
最后top15
1从图入手:
查看规律与趋势
2提出问题:
为什么会出现特别高的播放量?
是否有一定的节假日工作日规律?
不同歌手建模还是单独歌手建模或者歌曲建模?
不同歌手趋势是否相同?
3解决问题
为什么会出现特别高的播放量?--发现两种情况:1有人刷单2有新歌发布
是否有一定的节假日工作日规律?--除去特殊情况,大致有周期性节假日特征,周六日播放量会比工作日低
不同歌手建模还是单独歌手建模或者歌曲建模?--不同对象的建模需要实际结果来指导
不同歌手趋势是否相同?--不同歌手趋势变化大,需要分开不同趋势预测
4预测过程
1、利用ODPS SQL进行了数据清洗、预处理-删除掉了认为是异常的刷单等噪声数据(这个非常有效)
2、刻画数据的节假日与周期性特点—使用了stl分解预测
3、刻画数据的最近的播放趋势—使用一阶指数平滑预测(训练数据一定得选好)-歌曲建模最好
4、使用组合模型
5、针对预测误差进行模型参数修正-训练集的修正
6、针对预测误差的个体进行分析总结出模型的缺陷(对最近有新歌的歌手预测不准)-测试集选的34有一定的指导意义,和线上不完全一致
7、针对模型的缺陷选择合适的模型去解决该问题(拟合最近有新歌的歌手的播放量下降到稳定的趋势)
8、针对模型的缺陷-对于最近有新歌播放的歌手,利用去噪声平滑,融合平滑后数据的调和平均数。
源码地址:https://github.com/lytforgood/MLCompetition/tree/master/阿里音乐预测