我有一些用户已根据选择完成的问题和答案的数据集。我试图建立一个用户 - 用户推荐引擎,根据他们对问题的回答找到类似的用户。重要的一点是问题被洗牌,不在订单中,数据也在流式传输。
因此,对于每个用户,我都有这样的数据:
dispatch_async(dispatch_get_main_queue(), ^{
[self.clViewImages reloadData];
scrolling collection view to bottom
NSInteger section = [self numberOfSectionsInCollectionView:self.clViewImages] - 1;
NSInteger item = [self collectionView:self.clViewImages numberOfItemsInSection:section] - 1;
NSIndexPath *lastIndexPath = [NSIndexPath indexPathForItem:item inSection:section];
[self.clViewImages scrollToItemAtIndexPath:lastIndexPath atScrollPosition:UICollectionViewScrollPositionBottom animated:YES];
});
我发现大多数教程都是关于用户项推荐的,但没有关于用户用户推荐的内容。
我已经意识到群集和余弦相似性可能是一些不错的选择,而且我发现columnSimilarity非常有效。
user_1: {"question_1": "choice_1", ...}
user_2: {"question_3": "choice_4", ...}
user_3: {"question_1": "choice_3", ...}
我有两个问题:
将每个用户定义为列和问题/选择作为行来获取我需要的结果是明智的吗?
我应该如何将这类数据矢量化为数字?如果我需要进行聚类。
提前致谢:)
答案 0 :(得分:3)
不幸的是,这不是它的方式。 真是太好了,不是吗?
columnSimilarity
将与瘦和高矩阵一起使用,因此如果您有一个用户用户矩阵,您希望在该矩阵上执行该任务,则它将无效。例如,如果你有1M用户)
根据您的描述,我发现您可能有一个短而宽的矩阵,columnSimilarity
将不适合您。
如果您希望执行UUCF,群集将是一种方法。 (其中,LSH也是一种很好的方法。)