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

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

import graphlab
song_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]])

结果如下:
机器学习4-x——音乐推荐系统代码实现_第1张图片
机器学习4-x——音乐推荐系统代码实现_第2张图片
可以看到无论给谁推荐,推荐的歌曲都一样,所以这个模型无法克服流行歌曲(商品)推荐力过强的问题。

#建立一个个性化的推荐模型
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 inline
model_performance = graphlab.recommender.util.compare_models(test_data,[popularity_model,personalized_model],user_sample=0.05)

你可能感兴趣的:(labview,机器学习,python)