Scala Spark中两个稀疏向量的余弦相似性-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

Scala Spark中两个稀疏向量的余弦相似性

2018-12-21 10:59:53 3997 1

我有一个包含两列的数据框,其中每一行都有一个稀疏向量。我试图找到一种合适的方法来计算每行中两个向量的余弦相似度(或只是点积)。

但是,我还没有找到任何库或教程来为稀疏矢量做这件事。

我发现的唯一方法如下:

创建ak X n矩阵,其中n个项目被描述为k维度向量。为了将每个项目表示为ak维度向量,您可以使用ALS来表示潜在因子空间中的每个实体。您可以选择此空间(k)的尺寸。该k X n矩阵可以表示为RDD [Vector]。

将此k X n矩阵转换为RowMatrix。

使用columnSimilarities()函数获取n个项目之间相似性的X n矩阵。

我觉得计算每对的所有余弦相似度太麻烦了,而我只需要在我(非常大)的数据帧中使用它。

取消 提交回答
全部回答(1)
  • 社区小助手
    2019-07-17 23:23:17

    如果要计算点积的矢量数量很小,请缓存RDD [Vector]表。创建一个新表[cosine_vectors],它是原始表上的过滤器,仅选择您想要余弦相似度的向量。广播加入这两个并计算。

    0 0
相关问答

1

回答

Scala Spark中相同Spark Dataframe列上的顺序动态过滤器

2018-12-21 13:15:41 1794浏览量 回答数 1

1

回答

Scala,Spark-shell,Groupby失败

2018-12-21 11:51:10 1505浏览量 回答数 1

1

回答

Spark Scala - 检查嵌套案例类的字段

2018-12-12 14:30:00 2100浏览量 回答数 1

1

回答

Spark Scala生成随机RDD(1和0)?

2018-12-11 16:51:01 2168浏览量 回答数 1

1

回答

同时备案两个域名,邮寄资料可以在一起吗?

2016-06-29 16:50:49 2674浏览量 回答数 1

1

回答

之所以margin-left为负可以使元素向左移动是不是因为负的margin-left增大了margin-right?

2016-03-25 13:58:20 2004浏览量 回答数 1

1

回答

redis 控制hash同一实体数量的疑问

2016-02-22 10:05:38 2449浏览量 回答数 1

1

回答

请问四川地区备案需要邮寄哪些材料?

2015-03-30 10:14:19 2913浏览量 回答数 1

3

回答

一次性备案两个域名

2014-07-23 10:19:08 7577浏览量 回答数 3

21

回答

备案过程中各个环节所需的审核时间供参考

2012-10-25 12:03:40 29563浏览量 回答数 21
+关注
社区小助手
社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。
12
文章
824
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载