唱片的受欢迎程度的逻辑回归预测

唱片的受欢迎程度的逻辑回归预测_第1张图片
唱片的受欢迎程度的逻辑回归预测

背景:

全球音乐产业的年收入约为150亿美元。其中唱片业的竞争尤为激励,世界三大唱片公司(索尼、环球、华纳)的唱片收入约占全球唱片销量收入的82%。

艺术家是音乐产业的核心,唱片公司会为其提供必要的资源(录音、销售、发行和巡演)以换取唱片、单曲和演唱会的利润百分比。

不幸的是,艺术家的成功是高度不确定性的,有一些单曲可能非常受欢迎,有广泛的媒体传播和数字下载;有一些可能并不受欢迎,无法带来唱片销量。

预测目的:

了解唱片业的竞争性和唱片公司面对音乐发行的基本决策问题,通过算法和行业理解帮助唱片公司最大程度地获得财务成功,继而给听众带来多元的音乐体验。

如何通过分析来预测一首歌曲的流行?在这里,我们假设一首歌曲如果可以达到BillBoard Hot 100 Chart的TOP 10,这首歌曲就被认为是受欢迎的,是能带来潜在的唱片销量的。

数据概要:

我们选取了1990年至2010年以来的所有跻身于BillBoard Hot 100 Chart TOP 10的歌曲以及部分没有在TOP10的部分歌曲,通过歌曲本身的属性信息来预测它的受欢迎程度。这部分数据主要来源于:维基百科、Billboard.com和echonest。

主要变量:

Year 年份:歌曲发行的年份;
Songtitle:歌曲名称;
Artistname:歌手;
SongID和Artist ID:歌曲的ID和歌手的ID;
timesignature和timessignature_confidence:拍子记号,表示歌曲拍子的种类与结构;
loudness:响度,一个连续变量,表示音频的平均振幅;
tempo和tempo_confidence:歌曲平均每分钟的beats;
key和key_confidence:歌曲中音调的高度;
pitch:表示歌曲的音高;
timbre_0_min, timbre_0_max, timbre_1_min, timbre_1_max,. . . , timbre_11_min:音色的载体;
Top10: 1或0,表示这首歌曲是否跻身于BillboardHot 100 Chart TOP10 (1表示是,0表示否)。

数据清理:

将源数据分为训练集和测试集:

SongsTrain = subset(Songs, year <= "2009")
SongsTest = subset(Songs, year == "2010")

提取numeric类型的变量(重要语法技巧):

nonvars = c("year", "songtitle", "artistname", "songID", "artistID")
SongsTrain = SongsTrain[ , !(names(SongsTrain) %in% nonvars) ]
SongsTest = SongsTest[ , !(names(SongsTest) %in% nonvars) ]

分类情形,采用逻辑回归模型:

模型1:

SongsLog1 = glm(Top10 ~ ., data=SongsTrain, family=binomial)

结合实际A:

模型结果显示变量confidence about time signature\key\tempo越高,这首歌曲跻身于TOP 10的可能性就越大;实际上confidenceabout time signature\key\tempo越低,则表示这首歌曲越复杂。
关于模型1的结论A:
主流听众更加喜欢简单的歌曲。

结合实际B:

富有heavier instrumentation的歌曲更容易louder和more energetic.。通过观察变量loudness,我们不难发现主流听众更加喜欢富有heavier instrumentation的歌曲;但是我们很奇怪地发现,变量energy的系数却是与变量loudness的系数是相反的,变量energy和变量loudness相关性达到0.74。

关于模型1的结论B:

变量energy和变量loudness相关性达0.74,模型1存在过度拟合的问题。

模型2:

SongsLog2 = glm(Top10 ~ . - loudness, data=SongsTrain, family=binomial)

关于模型2的结论:模型2显示变量energy的系数为正,表明主流听众更加喜欢富有heavier instrumentation的音乐,较高的energy水平会使得歌曲更加富有heavier instrumentation而受欢迎。

模型3:

SongsLog3 = glm(Top10 ~ . - energy, data=SongsTrain, family=binomial)

关于模型3的结论: 模型2和模型3一同证明了富有louder和more enegertic的heavier instrumentation更加受到主流听众的喜爱。

模型预测评估:

predictTest = predict(SongsLog3, type="response",newdata=SongsTest)
table(SongsTest$Top10, predictTest > 0.45)

模型预测的精准度:

(309+19)/(309+19+5+40)=0.87936;

Baseline模型预测的精准度:

314/(314+59)=0.8418231;

通过和Baseline模型预测的精准度相比,逻辑回归模型预测更加准确。

逻辑回归模型3的敏感性

sensitivity = 19/(19+40)=0.322

逻辑回归模型3的特异性

specificity =309/(309+5)=0.984

逻辑回归模型3的结论:

模型3更加侧重于特异性specificity相比于敏感性sensitivity;
提供了较为保守的预测,预测一首歌曲其实是很难跻身于Billboard TOP 10的,然而我们对于预测极有可能成为TOP 10的歌曲是非常有信心的。

源数据:

https://courses.edx.org/asset-v1:MITx+15.071x_2a+2T2015+type@asset+block/songs.csv

参考代码:

https://github.com/QinQin0912/edX_The-Analytics-Edge_HW/blob/master/MusicRecord.R
扩展阅读:
《虾米推荐系统随笔》作者:拖鞋
http://www.haodaima.net/art/2309062
电影推荐:
《再次出发之纽约遇见你 Begin Again》
http://movie.douban.com/subject/6874403/

你可能感兴趣的:(唱片的受欢迎程度的逻辑回归预测)