阿里音乐流行趋势预测大赛一起做-(3)思路

原创 2016年05月17日 22:32:32

最近几个月忙着写论文,比赛给抛到脑后了(汗颜。。)。昨天阿里给了短信通知,说今天可以提交成绩了,于是抓紧搞起,结果也没赶上截止时间(早上10点)提交。无论如何今天也要提交一次成绩试试水。比赛的详细思路其实我也没怎么想好,有一些初步的想法和实践分享一下。

思路

我的想法比较简单,就是先用最简单的方法做一下,提交一次成绩,让自己有参与感,然后在后续不断的迭代更新中提升自己。我们采用倒推方式,首先从提交结果出发开始分析:
1、需要提交的结果如下:
这里写图片描述
要预测该表要求的60天数据,首先要将artist_id(表mars_tianchi_songs),Plays(表mars_tianchi_user_actions),Ds(表mars_tianchi_user_actions)统一到一个表中。
2、下一步就是,如何统一?
表mars_tianchi_songs和表mars_tianchi_user_actions有相同的一个列名就是song_id。所以可以将该列名作为key(键值)进行合并。这一步操作可以通过pandas (Python Data Analysis Library)中的merge函数实现。仔细观察后发现两个表的song_id行数不相等,不能直接合并,下一步就是对表做预处理使其能够合并。
3、如何对表做预处理?
歌曲艺人表mars_tianchi_songs是以10842首歌为index的,共有10843行(第一行为列名),基本不需要做预处理。该表部分内容如下:
这里写图片描述
用户行为表mars_tianchi_user_actions很大,接近500M,总共5652233行,所以必须做数据聚合。该表部分内容如下:
这里写图片描述
用户行为表有很多列,我们在此考虑最简单情况,只使用song_id, action_type, Ds三列。其中action_type中包含播放,下载和收藏三种情况,我们需要将该变量做成哑变量分离,也就是说最后自己处理后的用户行为表(暂且命名为my_user_actions)最后的列包含:
song_id, Ds, play_num, download_num, collect_num
其中后面的play_num, download_num, collect_num分别表示该song播放,下载和收藏的次数。然后表mars_tianchi_songs和表my_user_actions可以以song_id为key进行merge。假设merge后的表名为merge_data。那么该表内容应该如下:
这里写图片描述
到此已经非常接近于要提交结果的格式了。
4、下一步就是利用机器学习算法进行预测了。在此推荐先用时间序列分析相关算法。可以用python,R或者weka来做。

工具说明

不同的软件和语言各有其优势,以下是个人看法:
1、数据预处理阶段
该阶段推荐使用Python pandas,可以比较方便的实现数据清理、转换、合并等操作。推荐书籍《利用Python进行数据分析》。
2、算法预测阶段
目前还没有过多研究,感觉用R和weka比较方便。

一些参考

论坛里有不少大牛给出了一些结果和参考代码,首先感谢这些无私的分享者,在此给出几个链接:
1、阿里音乐流行趋势预测大赛,数据图像化模块函数
有代码,有图,赞一个!
github代码网址
这里写图片描述
2、样本数据50名艺人播放量折线图
在官方论坛的这里发布的,可以简单直观了解一下数据的样子,另外也可以和自己做的结果对比一下,保证自己不会出错。

结语

OK,以上就是我们团队的一个简单思路,希望对赛友有用,也希望各位大神能多交流分享思路。希望大家通过比赛能快速提升自己,取得好成绩!

相关文章推荐

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

强调内容# 欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮...
  • zxjhdn
  • zxjhdn
  • 2016年07月19日 17:28
  • 2270

阿里音乐流行趋势预测大赛一起做-(1)介绍

动机去年在同学推荐下参加了阿里的“资金流入流出预测大赛”,当时对数据挖掘的了解仅存在模糊的概念上,看了那本《大数据时代》后热血沸腾了几天,趁着这三分钟热度还没冷,就在什么都不懂的情况下报名开始搞了。我...

阿里音乐流行趋势预测大赛一起做-(1)介绍

动机去年在同学推荐下参加了阿里的“资金流入流出预测大赛”,当时对数据挖掘的了解仅存在模糊的概念上,看了那本《大数据时代》后热血沸腾了几天,趁着这三分钟热度还没冷,就在什么都不懂的情况下报名开始搞了。我...

阿里音乐流行趋势预测大赛—浅尝辄止(三)

这篇博文是在阿里音乐大赛(一)和阿里音乐大赛(二)之后的,参考到以为博主的文章和代码给我带来了很多启发,发现了很多Pandas的新用法,所以在这里做一个记录总结;关于阿里音乐大赛的相关方法介绍可以参考...

阿里音乐流行趋势预测大赛一起做-(2)weka初识

本次比赛第一赛季我们团队大赛先用weka对数据进行预处理。weka是一款开源的,免费的,基于JAVA环境下开源的机器学习(machine learning)以及数据挖掘(data mining)软...

阿里音乐流行趋势预测大赛一起做-(1)介绍

动机 去年在同学推荐下参加了阿里的“资金流入流出预测大赛”,当时对数据挖掘的了解仅存在模糊的概念上,看了那本《大数据时代》后热血沸腾了几天,趁着这三分钟热度还没冷,就在什么都不懂的情况下报名开始...

阿里音乐流行趋势预测大赛一起做-(4)成绩提交

按照我上一篇博客中所描述的思路,我们仅用artist_id和艺人当天的播放量Plays,以及日期Ds三个维度的数据作为训练集合,对每个艺人分别使用时间序列算法进行预测,提交了成绩。本来没报多大希望,只...

阿里音乐流行趋势预测大赛一起做-(5)温故知新

比赛进行到现在已经有十天了,我们队伍已经进入瓶颈期了,具体表现就是: 1、每次线下预测结果都感觉不错,应该可以提升成绩吧,至少和现在成绩相当吧,结果10点成绩出来就傻眼了,成绩一直掉掉掉。 2、黔...

阿里音乐流行趋势预测大赛一起做-(6)小结

最近一直在忙毕业的事情,比赛也落下不少。今天第一次切换了数据,在此对之前的工作做个简单的总结。感谢组委会岱月邀请我写自己的参赛经历,《天池小白成长记》在阿里的“天池大数据科研平台”上发布了,还是蛮激动...

阿里音乐流行趋势预测大赛一起做-(7)初赛总结之用户分类

音乐预测大赛的初赛今天轰轰烈烈地谢幕了,先来看看排名前10的队伍吧 我们队的成绩在切换数据后一直没有特别大的长进,虽然成绩没有达到预期,但是初赛这些天还是涌现并实现了一些不错的思路,有一些还没有...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:阿里音乐流行趋势预测大赛一起做-(3)思路
举报原因:
原因补充:

(最多只允许输入30个字)