【发布时间】:2020-12-30 20:35:47
【问题描述】:
我正在使用开源库 LightFM 构建推荐系统。该库要求某些数据采用稀疏矩阵格式,特别是 scipy coo_matrix。正是在这里,我遇到了奇怪的行为。这似乎是一个错误,但更有可能是我做错了什么。
基本上,我让 LightFM.Dataset 为我构建一个稀疏矩阵,如下所示:
interactions, weights = dataset.build_interactions(data=_get_interactions_data())
build_interactions 方法返回“两个 COO 矩阵:交互矩阵和相应的权重矩阵”——LightFM Official Doc。
当我检查这个稀疏矩阵的内容时(实际上,我使用调试器),如下所示:
for i in interactions.data:
print(i, end=', ')
1, 1, 1, 1, 1, ....
打印一长串 1,表示稀疏矩阵的非零元素只有 1。
但是,当我第一次检查稀疏矩阵的最大值时,它表明稀疏矩阵中的最大值不是 1,而是 3。此外,在检查之后打印矩阵将打印一长串 1 、2s 和 3s。这是它的代码:
print(interactions.max())
for i in interactions.data:
print(i, end=', ')
3
1, 1, 3, 2, 1, 2, ...
知道这里发生了什么吗? Python 是 3.6.8。 Scipy 是 1.5.4。 CentOS7.
谢谢。
【问题讨论】:
标签: python scipy sparse-matrix