机器学习4-x——音乐推荐系统代码实现

来源:互联网 发布:淘宝怎么可以买到片 编辑:程序博客网 时间:2024/06/15 03:27

整理自coursera
代码和数据可以在这里下载。

import graphlabsong_data = graphlab.SFrame('song_data.gl/')graphlab.canvas.set_target('ipynb')#查看有多少用户users = song_data['user_id'].unique()#数据分为训练集和测试集train_data,test_data = song_data.random_split(0.8,seed=0)#建立一个基于受欢迎程度的模型(无法克服流行歌曲推荐力过强)popularity_model = graphlab.popularity_recommender.create(train_data,user_id='user_id',item_id='song')#给特定用户推荐歌曲popularity_model.recommend(users=[users[0]])popularity_model.recommend(users=[users[1]])

结果如下:
这里写图片描述
这里写图片描述
可以看到无论给谁推荐,推荐的歌曲都一样,所以这个模型无法克服流行歌曲(商品)推荐力过强的问题。

#建立一个个性化的推荐模型personalized_model = graphlab.item_similarity_recommender.create(train_data,user_id='user_id',item_id='song')personalized_model.recommend(users=[users[0]])personalized_model.recommend(users=[users[1]])#这是可以发现给不同的用户推荐了不同的歌曲,有了很大改进#得到相似的歌曲personalized_model.get_similar_items(['Chan Chan (Live) - Buena Vista Social Club'])#比较两个模型%matplotlib inlinemodel_performance = graphlab.recommender.util.compare_models(test_data,[popularity_model,personalized_model],user_sample=0.05)
1 0
原创粉丝点击