阿里音乐流行趋势预测大赛 # 第一赛季第21名解决方案

来源:互联网 发布:java过滤器的生命周期 编辑:程序博客网 时间:2024/05/16 09:04

说明:
我和熊大同学一起组队参加了第一赛季,没有做第二赛季。思路比较简单。分享出来,权当抛砖引玉。

赛题分析
拿到赛题后,我们从四个方向去找特征,一个是歌曲特征,如下载、播放、收藏量等;二是歌手特征,如下载量、播放量、粉丝量等;三是用户特征,如用户每天听歌次数等;四是行为特征,如下载对播放的影响等。
在第一赛季换数据前,约565万条日志,35万用户,1万首歌曲,50位歌手。分析后发现数据很稀疏,尤其是用户方面的数据。跟我们之前的很多设想不太一致。
最终,我们使用了歌曲特征和用户相关的信息进行了预测。

解决方案
主要是针对歌曲和用户两方面进行建模,使用arima模型。两个模型的结果相融合。

一. 针对歌曲进行建模。

  1. 针对每首歌曲每天的播放量使用arima模型进行预测后60天的,将模型预测出为负的值强制更改为0,计算出歌手的后60天每天的播放量。

二.针对用户进行建模。

这块思路稍微复杂一点。

  1. 计算出每位用户六个月的总播放量、总下载量、总收藏量。
  2. 将用户总播放量完全相同的用户视为同一个用户,将他们的日志合并,相当于将原先的35万用户进行了合并。针对这些新用户,计算出“每位新用户-歌手”为主键值对的每天播放量。
  3. 使用arima模型预测,并将预测为负值的设置为0。并合并相同歌手。

三.将前两种预测结果融合。

  1. 两种结果均以权重0.5,相结合。

说明:
1.使用歌曲,而不是歌手,是因为歌曲更加细腻,实际预测出的效果也更好。
2.用户合并问题,平台上35万用户里,有25万用户的个人总播放行为少于10次。理论上,播放量较少的很难个人预测, 放在一起预测,效果很大,对答案的信息带来了增益。
3.源码地址:https://github.com/cheffyu/tianchi/tree/master/ali_music

0 0
原创粉丝点击