Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用KNN进行推荐_Python_Python 3.x_Knn_Recommendation Engine_Cosine Similarity - Fatal编程技术网

Python 如何使用KNN进行推荐

Python 如何使用KNN进行推荐,python,python-3.x,knn,recommendation-engine,cosine-similarity,Python,Python 3.x,Knn,Recommendation Engine,Cosine Similarity,我正在构建一个简单的图书推荐器,其中我只有特定的图书信息(价格、标题、作者、流派、出版日期),而根本没有用户信息(没有评级,没有人口统计),只有他们的购买历史 因此,我只想基于此购买历史记录提出建议,例如:用户A购买了book1、book2和book3,用户B购买了book1、book3和book4,如果我想获得用户A的建议,我可以假设book4是一个不错的建议,因为基于他们的购买历史记录,他们有着相似的兴趣 我试图用余弦相似性来实现KNN,但我真的不知道如何根据用户给出建议,我的意思是,我已经

我正在构建一个简单的图书推荐器,其中我只有特定的图书信息(价格、标题、作者、流派、出版日期),而根本没有用户信息(没有评级,没有人口统计),只有他们的购买历史

因此,我只想基于此购买历史记录提出建议,例如:用户A购买了book1、book2和book3,用户B购买了book1、book3和book4,如果我想获得用户A的建议,我可以假设book4是一个不错的建议,因为基于他们的购买历史记录,他们有着相似的兴趣

我试图用余弦相似性来实现KNN,但我真的不知道如何根据用户给出建议,我的意思是,我已经建立了矩阵,选择了参数,但我不知道如何使用结果给出用户推荐的书籍列表

下面是我的矩阵的外观(简化):

其中1表示用户是否购买了该书,0表示用户未购买

以下是我到目前为止所做的:

# Matrix with users as rows, products as columns and count as content
df_matrix = pd.pivot_table(order_df, values='count', index='username', columns='product')
# Replace all NaN contents with 0
df_matrix_dummy = df_matrix.fillna(0)

# Convert dataframe of books features to scipy sparse matrix
product_matrix = csr_matrix(df_matrix_dummy.values)

model_knn = NearestNeighbors(metric='cosine', algorithm='brute', n_neighbors=20, n_jobs=-1)

有人能帮我一把或给我介绍一个好的教程吗?

我想你是在使用
sklearn
,你有没有做过像
model\u knn.fit(product\u matrix)
这样的操作,然后使用
model\u knn.kneighbors()进行预测,还可以看看这个sklean,我已经做了,但是我不能真正理解数组
model_knn.kneighbors()
returns我的目标是在python中制作类似but的东西,在python中,根据用户及其图书购买历史提出建议
# Matrix with users as rows, products as columns and count as content
df_matrix = pd.pivot_table(order_df, values='count', index='username', columns='product')
# Replace all NaN contents with 0
df_matrix_dummy = df_matrix.fillna(0)

# Convert dataframe of books features to scipy sparse matrix
product_matrix = csr_matrix(df_matrix_dummy.values)

model_knn = NearestNeighbors(metric='cosine', algorithm='brute', n_neighbors=20, n_jobs=-1)