KTV点歌推荐实验(基于物品的协同过滤和流行度推荐python源码)

本文使用某KTV客户端线上点歌数据集,数据格式为:歌曲id,用户id,点唱次数,采用基于流行度的推荐和基于物品的系统过滤推荐,并画出PR图,给出实验结论:基于物品的推荐在推荐精确度上远超过基于流行度的推荐。

%matplotlib inline

import pandas
from sklearn.model_selection import train_test_split
import numpy as np
import time
from sklearn.externals import joblib
import recommender_live.Recommenders as Recommenders
import recommender_live.Evaluation as Evaluation

加载点歌数据

p = pandas.read_csv('train_data_wx.log', names=['user_id','song_id','listen_count'], dtype=str)

p['listen_count'] = p['listen_count'].astype(int)
print(p.dtypes)
print(p.head())
user_id         object
song_id         object
listen_count     int64
dtype: object
    user_id   song_id  listen_count
0   5333266  10008659             2
1   5333266  00012087             1
2   5333266  00022944             6
3  58290767  14004356             1
4  58290767  10009753             1

数据集长度

print(len(p))

#取部分数据试验
p = p.head(20000)
7225681

找出数据集中的流行歌曲

song_grouped = p.groupby(['song_id']).agg({
   'listen_count': 'count'}).reset_index()
grouped_sum = song_grouped['listen_count'].sum()
song_grouped['percentage']  = song_grouped['listen_count'].div(grouped_su
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值