遇到的问题贴…持续追加…
参考相关帖:
推荐 | 微软SAR近邻协同过滤算法解析(一)
推荐 | 微软SAR近邻协同过滤算法拆解(二)
练习题︱ python 协同过滤ALS模型实现:商品推荐 + 用户人群放大
模型预测之后Prediction一直为0,同时发现model.item_similarity
对角阵只有1,如下:
array([[1, 0, 0, ..., 0, 0, 0],
[0, 1, 0, ..., 0, 0, 0],
[0, 0, 1, ..., 0, 0, 0],
...,
[0, 0, 0, ..., 1, 0, 0],
[0, 0, 0, ..., 0, 1, 0],
[0, 0, 0, ..., 0, 0, 1]], dtype=int64)
这个原因报错是:
sar_singlenode.py的291行:
self.item_similarity = jaccard(item_cooccurrence).astype(
df[self.col_rating].dtype
)
这里item_cooccurrence的共现 C 矩 阵 C矩阵 C矩阵格式修改的时候的问题,是由这里的df决定,df => 训练数据集
在官方案例中rating都是float,笔者自己数据run的时候,调整为整数了。
所以,之后的数据rating列一定要改成float
形式。