【发布时间】:2021-05-29 18:43:53
【问题描述】:
我有一个这种形式的数据框:
+-------+-------+------------------+-------+----+
|userId1|movieId| rat1|userId2|rat2|
+-------+-------+------------------+-------+----+
| 1| 1| 1.0| 2| 1.0|
| 1| 2| 1.0| 2| 2.0|
| 1| 3| 2.0| 2| 3.0|
| 2| 1| 1.0| 3| 0.0|
| 2| 2| 2.0| 3| 0.0|
| 2| 3| 3.0| 3| 0.0|
| 3| 1| 0.0| 1| 1.0|
| 3| 2| 0.0| 1| 1.0|
....
其中rat1 和rat2 是user1 和user2 的评分。 我想要的是计算两个用户之间的余弦相似度,我的想法是从这个数据帧中提取数组,然后计算余弦相似度,例如:
arrayUser1 = (1,1,2)
arrayUser2 = (1,2,3)
arrayUser3 = (0,0,0)
问题是我不知道如何提取这些数组,有人有解决方案吗?或以更好的方式计算相似度的提示?
【问题讨论】:
标签: scala dataframe apache-spark cosine-similarity