使用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)
输出结果:
ratingDataImp的内容大概是这样的: