# -*- coding: utf-8 -*-
'''
@author: wp
协同过滤
'''
import pandas as pd
import numpy as np
class Xietonggl():
def __init__(self,df,use_num ):
self.df = df
self.use_num = use_num
def guanliandu(self,):
df_array = np.array(self.df) #将数据矩阵化
df_array_t = df_array.T #矩阵转置
user_guanxi = np.dot(df_array,df_array_t) #用户之间的关联度矩阵
prod_guanxi = np.dot(df_array_t,df_array) #产品之间的关联度矩阵
df_user = pd.DataFrame(user_guanxi,index = self.df.index,columns = self.df.index)#用户数据框
df_prod = pd.DataFrame(prod_guanxi,index =self.df.columns,columns = self.df.columns)#产品数据框
return df_user,df_prod
def oneself(self,):
pro = pd.DataFrame(self.df.loc[self.use_num])
user_old = list(pro[pro[self.use_num] == 1].index) #用户自身使用的产品
return pro,user_old
def yonghu(self,):
#找出关系最近的5个用户
df_user,df_prod = self.guanliandu()
pro,user_old = self.ones
python协同过滤算法(仅供参考)
最新推荐文章于 2024-05-16 22:40:56 发布