栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

协同过滤修正代码

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

协同过滤修正代码

user=["User1","User2","User3","User4","User5"]
Item=["ItemA","ItemB","ItemC","ItemD","ItemE"]
data=[[1,1,0,0,1],[1,0,1,1,0],[0,1,0,0,1],[1,1,1,0,1],[0,1,0,0,1]]
import pandas as pd
df=pd.Dataframe(data,columns=Item,index=user)
print(df)
from sklearn.metrics import jaccard_score
print(jaccard_score(df['ItemA'],df['ItemB']))
from sklearn.metrics.pairwise import pairwise_distances
usersimilar=1-pairwise_distances(df.values,metric='jaccard')
usersimilar=pd.Dataframe(usersimilar,columns=user,index=user)
print(usersimilar)
itemsimilar=1-pairwise_distances(df.values.T,metric='jaccard')
itemsimilar=pd.Dataframe(itemsimilar,columns=Item,index=Item)
print(itemsimilar)
to_user={}
for i in usersimilar.index:
    ab=usersimilar.loc[i].drop([i])
    ab_sorted=ab.sort_values(ascending=False)
    top2=list(ab_sorted.index[:2])
    to_user[i]=top2
print("top2的相似用户")
print(to_user)
import numpy as np
rs_results={}
for users,sim_users in to_user.items():
    rs_result=set()
    for sim_user in sim_users:
        rs_result=rs_result.union(set(df.loc[sim_user].replace(0,np.nan).dropna().index))     
    rs_result-=set(df.loc[user].replace(0,np.nan).dropna().index)
    rs_results[users]=rs_result
print(rs_results)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/752869.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号