阿里音乐流行趋势预测—亚军答辩(二)|学习笔记

简介: 快速学习阿里音乐流行趋势预测—亚军答辩(二)

开发者学堂课程【天池大赛算法教程及获奖选手答辩 阿里音乐流行趋势预测—亚军答辩(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/389/detail/4994


阿里音乐流行趋势预测—亚军答辩(二)


2. 子序列模式匹配法

截取歌手的待匹配子序列

这类歌手的日播放量趋势与其他歌手相差很大,对他们的预测和对其他歌手的预测,方法可能是不一样。因此针对这一类歌手,我们选用了子序列模式匹配法,来进行预测。

方法的思想是通过对其他歌手样本数据中曾经出现过的类似曲线的学习,计算出预测歌手9~10月份播放量,回落到正常水平的日播放量。

具体分为三步,首先选择待测歌手最后15天日播放量的变化率序列从8月16~8月30开始匹配子序列。然后与其他歌手的历史数据进行比对,找出其他歌手历史数据中找出与这个子序列最匹配的五个子序列。

1.求最佳匹配子序列

子序列最佳匹配的示意图

红色表示的是待匹配的子序列,下面就是找到了与待匹配的子序列最匹配的子序列。

2.确定预测值

最后就可以确定预测值,从选择五个最佳优质匹配列当中,我们选取后续变化比较平稳的子序列,作为计算预测值的一个依据,根据三个日变化率子序列的均值,计算出待预测歌手的9~10月份的日播放量趋势。发现歌手的日播放量回落都是有一个过程的,不是突然而然,9~10月份成一个阶梯式的回落过程。

3.附加处理

最后为了提高分数,我们对部分歌手也做了附加处理。

一共分为了两类,第一类是对月播放量最高的歌手的处理,第二类是针对9~10月份有发布新专辑的歌手的处理。

如图为歌手日播放量均值的示例图,从图中可以清晰的看到,第一名歌手的播放量是其他歌手的若干倍以上,由大赛提供的预测公式可以知道,对日播放量越大的歌手预测的准确程度对分数的影响越大。

因此认为提高第一名歌手预测的准确度,是非常重要的。所以在已有预测值的基础上,用二分法对第一年歌手的预测值进行了多次调整。

通过对歌手的样本集发现,歌手发布新专辑,播放量会呈现急剧的增长。因此我们针对9~10月份有新专辑发布的歌手,据专辑发布的时间,将9~10月份进行分段。根据专辑中的歌曲数量,对发布时间后的预测值略作提升,用这个值作为我们最后的预测值。

 

二、算法处理

就是从样本集当中提取歌手的日 周月播放量序列与日变化率序列,根据序列计算歌手的日编码,周编码,月编码。根据这些编码将预测值进行分类,分为四个基本类别。

根据每一个类别选取最优预测方法。 同时我们对月播放量排名最高的歌手做了些特殊的处理,同时对9~10月份有新专辑发布的歌手做了一些特殊的处理。

最终形成我们所提交的结果集。

 

三、曾经的尝试

以上我们的总体思路的算法都不是一朝一夕形成的,都是通过一次一次的尝试。

比如在第一赛季,尝试使用过一些常见时间序列模型进行预测。当时使用这个模型的时候,效果不太理想,经过分析有以下两个原因。

1. 预测的日期数较常会出现过拟合问题

2. Arima 等时间序列模型的拟合依据于比赛的评判函数不同

尽管这些标准时间序列模型不适合此次比赛,认为他将时间序列进行分解的这个思路是可以借鉴的。在传统的方法之后,还有周期性的叠加这一项。在样本集当中,我们也发现部分歌手的日播放量与时间序列成明显的周期性。

第二赛季,我们对所有歌手的日播放量进行过一个周期性的判断与提取,并在长期判断的基础上进行叠加。

可是叠加之后的分数下降了两百多分,我们分析后出现这种情况的原因主要有两个。

1. 待预测的时间范围比较长,在样本集中,这种周期性未必会一直延续下去。

2. 趋势和预测的偏差比较大的话,叠加的效果会适得其反。

所以我们预测后,没有对周期性进行叠加。

随机干扰

周期性和趋势是时间序列中确定的因素,随机干扰是时间序列中不确定的因素,它对长时间段的预测是比较小的,而且我们没有很好的办法对随机干扰进行提取。

所以在预测过程中,忽略掉随机干扰这一项。此外,我们尝试过用户对歌曲的收藏量,下载量与播放量的相关数据 进行研究,他们呈现出很明显的正相关性,但是我们也没有很好的办法对他们进行进一步的处理,所以没有在这个思路上继续进行下去。

 

四、建议

截至目前为止,阿里巴巴已经举办过很多这样的大数据的比赛 在选手主要来自高校的学生和老师。因此,可以考虑用高校的实际背景来设计赛题,用高校学生所熟悉的范围,更能激发他们的参赛热情,推动大数据在高校方面的研究与应用。

相关文章
|
机器学习/深度学习 算法 数据挖掘
阿里音乐流行趋势预测—冠军答辩(一)|学习笔记
快速学习阿里音乐流行趋势预测—冠军答辩(一)
1008 0
|
数据采集 机器学习/深度学习 算法
阿里音乐流行趋势预测—冠军答辩(二)|学习笔记
快速学习阿里音乐流行趋势预测—冠军答辩(二)
551 0
|
5月前
|
SQL 关系型数据库 MySQL
Flink CDC 3.4 发布, 优化高频 DDL 处理,支持 Batch 模式,新增 Iceberg 支持
Apache Flink CDC 3.4.0 版本正式发布!经过4个月的开发,此版本强化了对高频表结构变更的支持,新增 batch 执行模式和 Apache Iceberg Sink 连接器,可将数据库数据全增量实时写入 Iceberg 数据湖。51位贡献者完成了259次代码提交,优化了 MySQL、MongoDB 等连接器,并修复多个缺陷。未来 3.5 版本将聚焦脏数据处理、数据限流等能力及 AI 生态对接。欢迎下载体验并提出反馈!
869 1
Flink CDC 3.4 发布, 优化高频 DDL 处理,支持 Batch 模式,新增 Iceberg 支持
|
机器学习/深度学习 运维 Prometheus
构建高效运维体系:从自动化部署到智能监控的全方位实践
在当今数字化时代,企业对运维效率和稳定性的要求越来越高。本文将探讨如何构建一个高效的运维体系,从自动化部署、持续集成与持续交付(CI/CD)、智能监控、故障管理以及数据驱动决策等方面进行深入分析和实践指导。通过这些方法,企业可以实现更快速、更可靠的软件发布和问题解决,提升整体运营效率。
|
10月前
|
SQL 分布式计算 DataWorks
DataWorks智能交互式数据开发与分析之旅
本次实验将带您进行DataWorks Notebook的快速入门,包含:Notebook新建、多引擎SQL开发与分析、Python开发、交互式分析等,同时,使用DataWorks Copilot体验智能数据开发,体验智能交互式数据探索之旅。
2860 11
|
运维 Linux 网络安全
类似宝塔的开源工具
【5月更文挑战第19天】类似宝塔的开源工具
1490 4
|
数据采集 SQL 算法
阿里音乐流行趋势预测—亚军答辩(一)|学习笔记
快速学习阿里音乐流行趋势预测—亚军答辩(一)
513 0
|
SQL HIVE
Hive【基础知识 04】【Hive 属性配置的三种方式及配置的优先级说明】
【4月更文挑战第7天】Hive【基础知识 04】【Hive 属性配置的三种方式及配置的优先级说明】
439 0
|
存储 供应链 安全
【区块链】联盟链
【区块链】联盟链
799 0
|
设计模式 安全 Java
多线程设计模式【线程安全、 Future 设计模式、Master-Worker 设计模式 】(一)-全面详解(学习总结---从入门到深化)
多线程设计模式【线程安全、 Future 设计模式、Master-Worker 设计模式 】(一)-全面详解(学习总结---从入门到深化)
175 0