1

我正在尝试使用 ALS,但目前我的数据仅限于有关用户购买内容的信息。因此,当用户 X 购买项目 Y 时,我试图从 Apache Spark 填充 ALS,其评级等于 1(一)(并且只有我提供给该算法的此类信息)。

我试图学习它(将数据划分为训练/测试/验证),或者只是试图学习所有数据,但最后我得到的预测值对于任何一对用户项都极其相似(在第 5 或第 6 时有差异的值放在逗号之后,例如 0,86001 和 0,86002)。

我正在考虑这个问题,也许是因为我只能提供等于 1 的评级,所以 ALS 不能在这种极端情况下使用吗?

评级有什么技巧,所以我可以用来解决这样的问题(我只有关于购买什么的信息 - 稍后我将获得更多数据,但有一刻我必须使用某种协作过滤,直到我获得更多数据 - 换句话说,我需要在启动页面上向用户展示某种推荐我选择 ALS 作为启动页面,但也许我使用了其他东西,究竟是什么)?

当然,我正在更改迭代、lambda、等级等参数。

4

1 回答 1

1

在这种情况下,关键是您必须使用trainImplicit,它忽略了Rating' 值。否则,您是在要求它预测每个人都给所有事物评分为 1 的世界中的评分。正确答案总是 1,因此您的所有答案都是相似的。

于 2015-02-11T20:27:25.087 回答