python 多维向量相似度计算_[PySpark] LSH相似度计算

本文介绍了如何使用PySpark进行大规模多维向量的相似度计算,重点讲解了MinHashLSH和BucketedRandomProjectionLSH两种方法,以解决海量数据中寻找行为相似用户的场景。通过代码实现,展示了在MinHashLSH模式下,用户A和B的相似度为0.27,而A、B到C的相似度为0.75。
摘要由CSDN通过智能技术生成

108310d3b39931e82e59b5476c9e0dfe.png

一、问题场景

假设我们要找海量用户中哪些是行为相似的——

用户A:

id: 1001
name: 用户A
data: "07:00 吃早餐,09:00 工作,12:00 吃午饭,13:00 打王者,18:00 吃晚饭,22:00 睡觉"
mat: "1010001000010001100001101010000"

用户B:

id: 1002
name: 用户B
data: "07:00 晨运,08:00 吃早餐,12:30 吃午饭,13:00 学习,19:00 吃晚饭,21:00 学习,23:00 睡觉"
mat: "1110001000010000001011101010000"

用户C:......

mat是对用户的数据的特征化描述,比如可以定义第一位为“早起”,第二位为“晨运”,第三位为“吃早餐”,那么我们有了这个矩阵,怎么找到和他相近行为习惯的人呢?

从描述的one-hot向量中,我们看到A和B其实有很多相似性,但有部分不同,比如A打王者、但是B爱学习——

用户A: "1010001000010000001001101010000"
用户B: "1110001000010000000011101010000"

这就可以用LSH大法了。

二、思路介绍

Q:LSH相似度用来干嘛?
A:全称是“局部敏感哈希”(Locality Sensitive Hashing)。能在特征向量相似又
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值