假设我有一个用户购买产品的数据库(没有评级或类似的东西),我想向他们推荐其他产品。我使用的是ATL.trainImplicit,其中的培训数据具有以下格式:
[Rating(user=2, product=23053, rating=1.0),
Rating(user=2, product=2078, rating=1.0),
Rating(user=3, product=23, rating=1.0)]因此,培训数据集中的所有评分都是1。
预测评级给出最小值-0.6和最大评级1.85是正常的吗?我希望在0到1之间。
发布于 2016-04-12 07:09:01
是的,这是正常的。ALS的隐式版本本质上试图重构二进制偏好矩阵P (而不是显式评分矩阵R)。在这种情况下,“评级”被视为置信度--更高的评级意味着更高的信心,即二元偏好p(ij)应该被重构为1而不是0。
然而,ALS本质上解决了一个加权最小二乘回归问题,以找到重构矩阵P的用户矩阵和项目因子矩阵。因此,预测值不能保证在0, 1范围内。将预测解释为“不透明”值就足够了,因为更高的值等于用户购买该产品的可能性更大。这足以根据预测的分数对推荐的产品进行分类。
(注意项目-项目或用户-用户的相似性通常使用因子向量之间的余弦相似性计算,因此这些分数将在- 1,1。这种计算不是直接在火花,但可以自己完成)。
https://stackoverflow.com/questions/36544294
复制相似问题