推荐算法-完整代码实现ItemCF

本文介绍了使用Python完成Item-based Collaborative Filtering(ItemCF)推荐算法的详细代码实现,通过该项目,读者可以深入理解推荐系统的协同过滤方法。
摘要由CSDN通过智能技术生成

用python实现了基础的 Item-based collaborative filtering方法,
更多的内容可以访问我的项目
添加链接描述

import numpy as np
import pandas as pd
import json
from pandas import Series, DataFrame
import math

tdata=pd.read_csv(unicode(r'D:/推荐系统数据集/训练集与测试集/traindata.csv','utf-8'))
tdata.drop(columns='timestamp',inplace=True)
tdata['userId']=tdata['userId'].astype('str')
tdata['movieId']=tdata['movieId'].astype('str')
tdata['rating']=tdata['rating'].astype('float')
#tdata['rating']=tdata['rating'].apply(lambda x: x/5)
df1=tdata.groupby(by=['userId'])
types=tdata['userId'].unique()
info1={
   }
for type in types:
    df3={
   }
    df2=df1.get_group(type)
    for i in range(len(df2)):
        df3[df2.iloc[i,1]]=df2.iloc[i,2]
    info1[type]=df3
    info_json=json.dumps(info1,indent=4)
#print(info_json)

####利用itemcf求出物品间的相似度
train1=info1
C1=dict()
N1=dict()    
for u,items in train1.items():
    for i,rui in items.items():
        if i not in N1.keys():
            N1[i] =0
        N1[i] +=1
        for j,ruj in items.items():
            if i == j:
                continue
            if i not in C1.keys():
                C1.update({
   i:{
   j:0}})
			
            if j not in C1[i].keys():
                C1[i].update({
   j:
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值