我目前正在使用一个名为LightFM的Python库。但是我在将交互传递给fit()方法时遇到了一些麻烦。使用LightFM创建稀疏矩阵并打印预测
Python版本:3 库:http://lyst.github.io/lightfm/docs/lightfm.html
的文档状态,我应该使以下类型的稀疏矩阵:相互作用(np.float32 coo_matrix形状的[n_users,n_items]) - 基质
,但我似乎无法使它发挥它总是建议一样...
更新:当执行它的top_items变量下面要说的没有垫这是哪个用户迭代的,而不是任何其他项目(牛肉或沙拉),所以它看起来像我做错了什么。它输出:['蛋糕 '奶酪']每次
这里是我的代码:
import numpy as np
from lightfm.datasets import fetch_movielens
from lightfm import LightFM
from scipy.sparse import coo_matrix
import scipy.sparse as sparse
import scipy
// Users, items
data = [
[1, 0],
[2, 1],
[3, 2],
[4, 3]
]
items = np.array(["Cake", "Cheese", "Beef", "Salad"])
data = coo_matrix(data)
#create model
model = LightFM(loss='warp')
#train model
model.fit(data, epochs=30, num_threads=2)
// Print training data
print(data)
def sample_recommendation(model, data, user_ids):
#number of users and movies in training data
n_users, n_items = data.shape
#generate recommendations for each user we input
for user_id in user_ids:
#movies our model predicts they will like
scores = model.predict(user_id, np.arange(n_items))
#rank them in order of most liked to least
top_items = items[np.argsort(-scores)]
print(top_items)
sample_recommendation(model, data, [1,2])
'不能使它工作'在这里是一个被禁止的短语!你必须告诉什么是错的。错误,结果错误等。具体问题出在哪里。 – hpaulj
嘿@hpaulj我已经更新了我的答案,并回答了我认为在这里错了。谢谢:) – aat2703