基本上,你看到了 Item exists in test data but not training data 消息,因为评估发生的方式。数据分为2,训练集和测试集。在训练数据上训练推荐者,然后根据测试集验证结果。这种划分为训练和测试的分区是随机完成的,所以是的,有些项目可能在训练集中而不在测试集中,反之亦然。对于更重要的结果,您应该运行测试大约3次或更多次并平均结果。
Item exists in test data but not training data
理想情况下你不会使用 RandomUtils.useTestSeed(); 在生产评估代码中,它主要用于测试目的,因为每次运行测试时将随机种子设置为相同,因此您可以获得可重复性(适用于测试内部求值程序代码)
RandomUtils.useTestSeed();
此外,knn推荐器在Mahout 0.8(最近发布)中已弃用,将在0.9中删除