2016中国高校计算机大赛——大数据挑战赛亚军:陕西师范大学团队

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 2016中国高校计算机大赛大数据挑战赛上,陕西师范大学网路信息中心团队对阿里音乐流行趋势预测进行了自己的成果展示。首先从解题思路开始谈起,重点对算法进行了阐述,包括类别最优值选择法和子序列模式匹配法,最后对比赛中遇到的问题进行了总结。一起来了解下。
2016中国高校计算机大赛大数据挑战赛上,陕西师范大学网路信息中心团队对阿里音乐流行趋势预测进行了自己的成果展示。首先从解题思路开始谈起,重点对算法进行了阐述,包括类别最优值选择法和子序列模式匹配法,最后对比赛中遇到的问题进行了总结。一起来了解下。

 

总体思路

345530e372fde7270ac42db2c4e3a7ffc9d6f7cd

陕西师范大学的同学们采用了标准时间序列的分解思想,将日播放量分解为长期趋势、中期与随机干扰三项,但在最终的算法当中,只对长期趋势进行了预测,我们的算法分为数据预处理、编码、分类、预测方法选择和附加处理五个环节,整体来讲是以歌手为单位,对数据集进行预处理,根据预处理结果对歌手进行编码,依据编码将所有歌手进行分类,分为24个基本类别,针对每一个类别选择出它的最优预测方法,最后为了提高分数,我们也对部分歌手做了附加处理。

 

算法阐述

预处理部分,我们采用数加平台,在数加平台中建立SQL节点,执行SQL语句完成的数据预处理的结果,包括从样本中提取的每个歌手的日播放量序列、周播放量均值序列、月播放量均值序列、日变化率序列等,前三个序列将在编码中使用,日变化量序列用于选择每个类别的最优预测方法,在此基础上对歌手进行编码。

编码方法

b3140c1fa99b5329b875c69e0dc1c46883962ef7

编码包括月编码、周编码与日编码,进行编码的主要目的是大致的判断歌手日周月播放量的变化趋势,以月编码为例,编码是以基本趋势和增量趋势两部分组成的,基本趋势的编码规则是当月均值高于前一个月均值,则为“1”,否则为“0”,例如,4月份的均值大于三月份的均值,那一位就为1,5月份均值小于4月份均值,对应位为0;增量趋势代表变化幅度的大小,它的编码规则是若当月均值高于前一月,则当月均值除以上月均值的结果取整,否则上月均值除以当月均值的结果取整,例如,最后一位为5,表示的是8月均值与7月均值相差5倍以上,到底是增长还是下降,我们从前面基本趋势可以得出结果,综合基本趋势和增量趋势两个部分,就可以知道8月均值在7月均值上正向一个大幅度的增长。同样地,日编码和周编码都可以使用这个方法得到。

分类

根据月编码、周编码、日编码的基本趋势和增量趋势部分对歌手进行分类,最终分为24个基本类别。

6ed57fb2c76e1dbe13307ac3eeae385cf8f756cb

进行分类的主要目的是将播放量变化总体趋势相似的歌手归为一类,例如,将基本趋势的后两个月连续上升的、增量趋势最后一个月变化平稳的歌手归为第一类,将增量趋势最后一个月大幅度增加的歌手归为一类,最初只分为8个类别,在比赛进行的过程中我们对类别进行了不断的验证与细化,最后形成了24个基本类别。

预测方法选择

对歌手分类好后,就需要对每个类别找到它的最优预测方法。寻找最优预测值的方法有两种:

类别最优值选择法

e0dd4376086780ff3f253e1c7ccb706ddd288fd6

对歌手60天的日播放量进行预测,很难进行精确预测,应该尽可能预测9到10月份的日播放量的均值水平,因此选用最后三天均值法、最后一个月均值法以及各类使用百分位数作为预测值的方法等作为待选预测方法的集合。

5558725fc5b3f0fd9a36a0aa7e249e202ac0f747

有了待选方法集之后,就要针对每一类别的歌手评判他的最优预测方法,使用3到7月的数据作为训练集,8月份的数据为测试集,遍历待选预测方法集合,用当前选定的待选预测方法计算八月份的预测值,根据大赛提供给我们的评判公式,我们对8月份预测值进行评分,得分最高时对应的方法正是我们要求的这一类别歌手的最优预测方法,使用最优预测方法就可以计算这一类别歌手9到10月份的日播放量。

子序列模式匹配法

在第二赛季第二批数据集当中,通过对歌手的日编码、周编码的增量趋势部分查看发现,存在40多位歌手8月中下旬的日播放量突然成倍增长的情况,这部分歌手的日播放量趋势与其他歌手的相差很大,我们认为对这部分歌手的预测要采取不一样的方法,因此,针对这一类歌手,我们采用子序列模式匹配法来进行预测,这种方法是通过对其他歌手样本数据中曾经出现过的类似曲线的学习, 计算出待预测歌手9-10月份日播放量回落到正常水平的预测值。具体来讲分为以下三步:

  • 截取歌手的待匹配子序列:截取待预测的歌手最后15天的日变化率序列;
  • 求最佳匹配子序列:在其他歌手的日变化率序列中找出欧式距离最小的5个子序列;

5da91acd9cdd4a27708b375a78a6f0a539130709

  • 确定预测值:从选出的五个最佳匹配子序列中选取后续变化比较平稳的三个子序列作为计算预测值的依据。

b75cc3a53858edcb4ff91ebc6d3318bbe8d784b3

对选出的3个子序列匹配结束后的样本序列的变化率进行处理,计算出待预测歌手的9、10月份的日播放量趋势。我们发现歌手的日播放量回落一般是需要一个过程的,不是一下子回落到水平状态的,因此我们做了分段下降处理,使9到10月份呈现一个阶梯式的回落过程。

895538a6a536a57c0fdd2b57953c53f483a8ce34

附加处理

  • 对top1歌手的处理:

e1949008314b50142262ad0887ef686ba0f44824

上图为歌手月播放量均值的示意图,从图中可以明显看到,第一名歌手的播放量是其他歌手的若干倍,由大赛提供的评判公式可以知道,对日播放量越大的歌手预测的准确程度对分数的影响越大,因此我们认为,提高第一名歌手的预测准确度是非常重要的,所以在已有预测值的基础上根据二分法对第一名歌手的预测值进行了多次调整,最后提高了600多分。

  • 发布新专辑:根据专辑发布时间,以发布时间为分割点对9-10月份进行分段,根据专辑中的歌曲数量,对发布时间后的预测值略作提升,用这个值作为最后的预测值。

c77b31335c644063e65d57192d913fe063bb1d37

总的来说,我们是从样本集中提取出每个歌手的日、周、月播放量序列和日变化率序列,根据这些序列对每个歌手进行日编码、月编码与周编码,根据编码将所有歌曲分为24个基本类别,然后对每个类别选用它的最优预测方法,同时对月播放量最高歌手和有新专辑发布歌手做了特殊处理,形成最终提交的结果集。

 

曾经的尝试

我们的算法不是一朝一夕形成的,也迈过了很多的坎坷。比如:

  • 我们尝试过使用常见时间序列模型( Arima、STL、Holt-Winters)进行预测,但由于预测的日期数较长,会出现过拟合问题;而且,Arima等时间序列模型的拟合依据与比赛的评判函数不同。
  • 我们也对所有日播放量歌手序列进行过周期性判断,但由于待预测的时间范围较长,样本集中的周期性未必会延续下去;趋势预测的偏差过大会导致叠加周期性后的效果适得其反。

周期性与趋势是随机序列中的确定性因素,随机干扰是时间序列中的不确定因素,它对长时间的预测扰动是比较小的,而且,我们也没有很好的办法地随机干扰进行提取,所以我们忽略了随机干扰。此外,我们也尝试过用户对歌曲的收藏量、下载量和播放量的相关性进行过研究。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
4月前
|
存储 算法 数据挖掘
【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现
本文介绍了2023年中国高校大数据挑战赛赛题B的Python实现方法,该赛题涉及DNA存储技术中的序列聚类与比对问题,包括错误率分析、序列聚类、拷贝数分布图的绘制以及比对模型的开发。
86 1
【2023年中国高校大数据挑战赛 】赛题 B DNA 存储中的序列聚类与比对 Python实现
|
4月前
|
机器学习/深度学习 数据采集 大数据
2022年第三届MathorCup高校数学建模挑战赛——大数据竞赛 赛道B 北京移动用户体验影响因素研究 问题一建模方案及代码实现详解
本文详细介绍了2022年第三届MathorCup高校数学建模挑战赛大数据竞赛赛道B的题目——北京移动用户体验影响因素研究,提供了问题一的建模方案、代码实现以及相关性分析,并对问题二的建模方案进行了阐述。
97 0
2022年第三届MathorCup高校数学建模挑战赛——大数据竞赛 赛道B 北京移动用户体验影响因素研究 问题一建模方案及代码实现详解
|
4月前
|
机器学习/深度学习 数据采集 大数据
2022年第三届MathorCup高校数学建模挑战赛——大数据竞赛 赛道B 北京移动用户体验影响因素研究 问题二建模方案及代码实现详解
本文详细介绍了2022年第三届MathorCup高校数学建模挑战赛大数据竞赛赛道B的问题二的建模方案和Python代码实现,包括数据预处理、特征工程、模型训练以及预测结果的输出,旨在通过数据分析与建模方法帮助中国移动北京公司提升客户满意度。
80 2
|
4月前
|
机器学习/深度学习 算法 大数据
【2023年MathorCup高校数学建模挑战赛-大数据竞赛】赛道A:基于计算机视觉的坑洼道路检测和识别 python 代码解析
本文提供了2023年MathorCup高校数学建模挑战赛大数据竞赛赛道A的解决方案,涉及基于计算机视觉的坑洼道路检测和识别任务,包括数据预处理、特征提取、模型建立、训练与评估等步骤的Python代码解析。
81 0
【2023年MathorCup高校数学建模挑战赛-大数据竞赛】赛道A:基于计算机视觉的坑洼道路检测和识别 python 代码解析
|
2月前
|
存储 机器学习/深度学习 分布式计算
大数据技术——解锁数据的力量,引领未来趋势
【10月更文挑战第5天】大数据技术——解锁数据的力量,引领未来趋势
|
22天前
|
存储 分布式计算 数据挖掘
数据架构 ODPS 是什么?
数据架构 ODPS 是什么?
167 7
|
22天前
|
存储 分布式计算 大数据
大数据 优化数据读取
【11月更文挑战第4天】
36 2
|
1月前
|
数据采集 监控 数据管理
数据治理之道:大数据平台的搭建与数据质量管理
【10月更文挑战第26天】随着信息技术的发展,数据成为企业核心资源。本文探讨大数据平台的搭建与数据质量管理,包括选择合适架构、数据处理与分析能力、数据质量标准与监控机制、数据清洗与校验及元数据管理,为企业数据治理提供参考。
78 1
|
19天前
|
存储 大数据 数据管理
大数据分区简化数据维护
大数据分区简化数据维护
24 4
|
29天前
|
存储 大数据 定位技术
大数据 数据索引技术
【10月更文挑战第26天】
54 3