我有以下代码:
ItemSimilarity itemSimilarity = new UncenteredCosineSimilarity(dataModel);
recommender = new GenericItemBasedRecommender(dataModel,itemSimilarity);
List<RecommendedItem> items = recommender.mostSimilarItems(10, 5);
我的数据模型是这样的:uid itemid socre
userid itemid score
1 6 5
1 10 3
1 11 5
1 12 4
1 13 5
2 2 3
2 6 5
2 10 3
2 12 5
当我运行上面的代码时,结果是这样的: 13 6 11 2 12 我调试代码,发现List items = Recommendationer.mostSimilarItems(10, 5); 返回的物品得分相同,即为一!所以,我有一个问题。在我看来,我认为最相似的item应该考虑item co-occurrence matrix:</p>
2 6 10 11 12 13
2 0 1 1 0 1 0
6 1 0 2 1 2 1
10 1 2 0 1 2 1
11 0 1 1 0 1 1
12 1 2 2 1 0 1
13 0 1 1 1 1 0
在上面的矩阵中,第 12 项最相似的应该是 [6,12,11,13,2],因为第 1 项和第 12 项比其他项更相似,不是吗?现在,谁能为我解释一下?谢谢!