我尝试使用 lightfm v.1.14 构建混合推荐系统。
我可以使用以下代码将所有数据放入稀疏矩阵中:
db = DBConnector().getDBConnector()
data = pd.read_sql('call get_UserItemRating();', con=db)
rows = data.loc[data['userID'].idxmax()]['userID'] + 1
cols = data.loc[data['itemID'].idxmax()]['itemID'] + 1
mat = sp.lil_matrix((rows, cols), dtype=np.int32)
for index, row in data.iterrows():
if row['rating'] >= 4:
mat[row['userID'], row['itemID']] = row['rating']
train = mat.tocoo()
data = pd.read_sql('SELECT * FROM wine_grapes;', con=db)
db.close()
rows = data.loc[data['fk_Wine'].idxmax()]['fk_Wine'] + 1
cols = data.loc[data['fk_Grapes'].idxmax()]['fk_Grapes'] + 1
mat = sp.lil_matrix((rows, cols), dtype=np.int32)
for index, row in data.iterrows():
mat[row['fk_Wine'],row['fk_Grapes']] = 1
item_features = mat.tocoo()
model = …Run Code Online (Sandbox Code Playgroud) python recommendation-engine machine-learning matrix-factorization data-science