开发者学堂课程【天池大赛算法教程及获奖选手答辩: 阿里音乐流行趋势预测—冠军答辩(一)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/389/detail/4992
阿里音乐流行趋势预测—冠军答辩(一)
目录
一、 赛题分析
二、 规则算法
三、 模型算法
四、 重要的事情
一、赛题分析
1.竞赛题目
本次大赛以里音乐用户的历史播放数基期望赛者可以通过对同里音乐平台上每个阶段艺人的听量挖出即将成为潮流的艺人。从而实现对一个时间段内音乐流行势的准确把控。
2.评测方式
艺人在第 k 天的实际播放数为T,参赛选手集合为 U,艺人集合为 W,参赛选手的程序计算得到艺人在第 k 天的播放数为 S,则参赛选手对艺人的。
的播放预测和实际的方差归一化方程。
而艺人在第k天的权重根据艺人的播放量平方根得到。
参赛选手的预测为F1
3.播放量
第一种,播放量快速上升。
第二种,十分平稳。
第三种,指数下降。
总体播放量,有三个明显特征。
一平稳上升
二播放量低于日常
三周期性。当用户数目足够多,就会表现出一定的周期性。
音乐播放在碎片时间多的播放量大。
4. 强调:
对于基本概念的把握要清晰,预测问题往往会做很多近似,在近似过程中如果不能很清晰把握系统的输入输出,自变量的因变和函变的话,最后很容易出现混淆,有很多弯路。个人经验,明确写入函数和输入输出。
如果准确研究播放量的话,就是网络传播动力学的知识,现在也比较热门,并没有强的结果。根据赛题说,通过历史数据,比如星期假期这些数据,来预测。
一般用两个月或四个月数据预测两个月,实际用四个月的数据就可以预测后五个月的数据。预测8-10月的函数是不同的,因为关于时间t的函数,没有办法因为预测换算f3f4,加星号是某一种特例术语。比赛中会涉及到换数据的问题,f5与f4也是不同的,它会涉及到特有的几个艺人的事情。那么最后实际求得是,用f3把数据回归出来,尽可能把 f6求出来,f6 和 f4之间的差要求出来。
这个可能看起来比较基本,但是在实际操作中 f3f4 变量会很多,会推出来很多模型,融合后,可能会混淆。
那么就变成求 f3f6 两个函数的问题了。求f3就是一个回归问题,有两个方法,一个是专家启动,另一个是机器学习。
二、规则算法
认为构造一个非线性函数,并利用数据集求取参数。
模型:利用机器学习方法获得回归函数。
大胆假设,小心求证:例如,求长假的播放量修正系数或者融合模型系数。
f6在比赛中也是很重要的,因为数据挖掘就是获取信息,在比赛中除了给数据的信息,数据测评的分数里面包含非常多的信息。从分数的测评当中,如果有技巧的测评一些答案提交的话,实际可以获得更多的信息,会有非常大的提升。
给你的信息是没有长假的,但是预测的信息是有长假的,而且通过总的播放量可以看到,假期的播放量要低,但是具体如何低,呈一个怎样的形式,这个没有办法从数据集里获得信息,只能通过构造测评答案来获取这方面的信息。
第二个,虽然前面的播放量是稳步上升的,但你不能保证它的未来走势。像这种,外部扰动带来的影响,不能通过立体数据来获取的。只能通过一些假设进行求证。
另外包括后面融合模型的参数,提交参数,查看成绩好坏。这个比赛最关键性问题就是播放量突发性能否预测,前面对这个问题已经论述的非常清楚了,一些外有因素带来的。通过历史数据,是不能精确预测的。另外,如果对数据做了信息分析,很快得出不能预测的结论。所以它也是外部扰动的一项,而且外部扰动非常强,基本上不会有几十倍的增加。
另外就是一个问题,题目还给了一些其他的数据,这些数据还有用。
用户行为数据,在所有数据中展绝大多数,可以比较肯定的说,这个没有什么帮助,效果差。
还有就是下载数据等,这些数据可能会包含一些信息,但是在一个很强的扰动背景下,这些作用都比较弱,提取也很困难。
其实最后有用的数据就是艺人的播放量和播放人数,还有一些统计量。
其实特别简单,模型一的爆发增长是没办法预测的,直接不看。
预测一个稳定值,在八月份的回落做出来就可以了。预测这两部分,做一个v型预测。因为艺人播放量在上升,用户播放量在上升,应该是对应到单个艺人上,也是会有上升。变成求 a 的基准值,求 b 的斜率。利用历史数据,一些值做线性回归。
前3日播放量的均值相对于前60日最低值的增长量求线性回归了斜率 b
前60日中位数,,前7日均值,前
14日中位数,30/60日最小值求线性回归 a
用总体播放量的增长量求线性回归 c
叠加了每个艺人星期的周期变化和节假日的修正系数。
每次剔除一个影响最小的量,就会得到大概得值,不会有上升时,就可以拿来做预测。跟其他不同的是做了个叠加,有一个周期变化和节假日的增加。
给你数据,让你预测是很难的。如果把数据结果图画出来,很容易观察预测的准确性。