python音乐推荐系统+django框架+MySQL数据库(协同过滤推荐算法)
一、开发技术
pycharm、MySQL数据库/sqlite3数据库、Python3.x版本、Django框架
二、说明
基于用户画像以及协同过滤的音乐推荐系统(UserProfile_MusicRecommend)
1.将基于用户的协同过滤算法与用户画像 相结合进行推荐,提高推荐列表数据的成熟度。
2.系统在Windows平台上搭建,采用Python3实现各项功能;采取MySQL/sqlite3进行数据的存储,通过Django框架连接系统的前、后端。
3.使用的数据集为kaggle平台上kkbox举办的—KKBox's Music Recommendation Challenge比赛的公开数据集(数据集采用公开数据集Last.fm Dataset-360K Users数据集),kkbox是亚洲领先的音乐流媒体服务提供商,拥有世界上最全面的亚洲流行音乐库,拥有超过3000万首音乐曲目。
4.针对数据集使用SVD矩阵分解进行相似相关度的计算分析,根据已有的评分情况,
分析出评分者对各个因子的喜好程度以及歌曲包含各个因子的程度,最后再反过来根据分析结果预测评分,根据评分的结果生成推荐列表。
2、算法说明:基于用户的协同过滤推荐算法
三、项目运行截图
四、补充
协同过滤算法因其实现简单、方便应用到产品中等特点在推荐系统中被广泛使用,而本文主要讨论的是协同过滤算法中的基于用户的算法。系统会依据用户对歌曲的一些操作行为,比如将喜欢的歌曲加入收藏的歌单等等,然后使用基于用户的协同过滤推荐算法,找出与想推荐用户相类似的邻居用户,通过分析邻居用户有没有某音乐产生兴趣偏好从而预测目标用户可能感兴趣的歌曲,进行个性化的推荐,这样用户在选择判断的时候能减少很多的时间,也可以解决一些用户的选择困难症,优化用户的听歌体验。本文的数据集是Last.fm Dataset 歌曲数据集,研究的项目是基于Python 语言开发,采用Python3实现各项功能,采取sqlite3数据库进行数据的存储,通过Django框架连接系统的前、后端。
多媒体数字技术的不断发展和应用使得数字音乐越来越受到大众的欢迎,与以往的CD、唱片等实体专辑相比,数字音乐更加经济方便,受到了大众的喜爱。因此,移动音乐和在线音乐得到了快速发展。这些音乐平台向用户提供了成千上万的歌曲供用户使用,然而,现在网络上新歌也层出不穷,本就非常庞大的音乐库也变得越来越大,用户想要从这些没有听过的歌曲中找出自己喜欢的歌曲太过的困难,也会耗费大量的时间精力。本系统的设计初衷正是为了解决这些问题,帮助用户在选择判断的时候减少不必要的时间,也可以解决一些用户的选择困难症,优化用户的听歌体验
本系统使用的是协同过滤算法中的基于用户的协同过滤推荐算法,系统通过收集目标用户的收藏喜欢的歌曲,下载歌曲等行为数据,运用该算法找出与目标用户类似的邻居用户,通过其他相似用户的信息分析并推测出目标用户的潜在喜好和可能感兴趣的歌曲,主动向目标用户推荐。同时由于该项目仅是个人的研究,不会应用于实际,能收集到的用户数据有限,而基于用户的协同过滤推荐算法正好比较适用于用户数据较少的情况。除此之外,如果相似用户给出了其他的新的反馈信息,系统也能利用这一点,从而提高个性化推荐的效率。