【发布时间】:2018-01-31 15:46:56
【问题描述】:
我有一组用户通过选择完成的问题和答案。我正在尝试构建一个用户-用户推荐引擎,以根据他们对问题的回答来找到相似的用户。重要的一点是问题被打乱并且没有顺序并且数据是流式传输的。
所以对于每个用户,我都有这样的数据:
user_1: {"question_1": "choice_1", ...}
user_2: {"question_3": "choice_4", ...}
user_3: {"question_1": "choice_3", ...}
我发现大多数教程都是关于用户项目推荐的,但没有关于用户用户推荐的。
我意识到聚类和余弦相似度可能是一些不错的选择,并且我发现 columnSimilarity 非常有效。
rows = sc.parallelize([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])
mat = RowMatrix(rows)
sims = mat.columnSimilarity()
我有两个问题:
将每个用户定义为列并将问题/选择定义为行以获得我需要的结果是否明智?
我应该如何将这种数据矢量化为数字?如果我需要进行聚类。
提前致谢:)
【问题讨论】:
-
columnSimilarity 将与瘦矩阵和高矩阵一起使用,因此如果您有一个用户-用户矩阵来执行该任务,它将不起作用。例如,如果您有 100 万用户)
-
@eliasah 是的,谢谢您的回复。只是想确定一下。那么聚类会是更好的方法吗?
标签: apache-spark machine-learning pyspark