为什么使用Pyspark对隐式反馈的数据创建推荐模型的时候发现预测值存在负数?

使用Pyspark对隐式反馈的数据创建推荐模型的时候发现预测值存在负数

# 创建ALS模型-显式反馈
als = ALS(rank = 8, 
          maxIter = 15, 
          regParam = 0.1, 
          userCol= 'userId', 
          itemCol='movieId', 
          ratingCol='rating',
          coldStartStrategy='drop'
)
model = als.fit(ratingData)
#隐式反馈
als2 = ALS(maxIter = 15, 
          regParam = 0.1, 
          userCol= 'userId', 
          itemCol='movieId', 
          ratingCol='rating',
          coldStartStrategy='drop',
          implicitPrefs = True,
          nonnegative=True
)
model2 = als.fit(ratingDataImp)

res = model.transform(testData).toPandas()
res2 = model2.transform(testData).toPandas()

print(res)
print(res2)

输出结果:

img

ratingDataImp的内容大概是这样的:

img

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^