tags: 2021IT
杰卡德相似系数:两个集合$A$和$B$的交集元素在$A$、$B$的联集中所占的比例,称为两个集合的杰卡德相似系数,用符号$J(A,B)$表示
$J(A,B)=\dfrac{|A\cap B|}{|A\cup B|}$
杰卡德距离(Jaccard Distance):与杰卡德相似系数相反的的概念,用两个集合中不同的元素的占比来衡量两个集合的区分度
$J_\delta(A,B)=1-J(A,B)=\dfrac{|A\cup B|-|A\cap B|}{|A\cup B|}$
杰卡德相似系数与杰卡德距离的应用:
可将杰卡德相似系数用在衡量样本的相似度上
样本$A$与样本$B$是两个n维向量,假设所有维度的设定值都是0或者1。举例来说我们有两个4维向量$A(0111)$和$B(1001)$,我们将这两向量看成集合,1表示集合包含该元素,0则表示不包含。
那麽样本A和B的杰卡德相似系数可以表示为:
$J=\dfrac{p}{p+q+r}$
用python实现
import numpy as np
def get_dist(a, b):
up = np.double(np.bitwise_and((a != b), np.bitwise_or(a != 0, b != 0)).sum())
print(up)
down = np.double(np.bitwise_or(a != 0, b != 0).sum())
dist = (up / down)
return dist
def get_coe(a, b):
p = np.double(np.bitwise_and(a, b).sum())
q = np.double(np.bitwise_and(a==1, b==0).sum())
r = np.double(np.bitwise_and(a==0, b==1).sum())
coe = p / (p + q + r)
return coe
if __name__ == '__main__':
x = np.random.random(10) > 0.5
y = np.random.random(10) > 0.5
print('杰卡德相似系数:', get_coe(x, y))
print('杰卡德距离:', get_dist(x, y))
<<: Know all about types of research papers in Australia
>>: Day22 - 前处理: 资料平衡&Label 调整
偶尔还是要听点抒情点的... 韩剧推荐 : Live 第一集男女主角警校考试准备的那段蛮激励人心的,...
前言 这篇文章超级适合给manager们,特别是那些非常重视团队成员成长的领导人们。或许你曾经尝试...
今天我们会用部落格跟使用者的关系来讲解关联,首先先做设定,部落格跟使用者的关系为 使用者对应多个部落...
今天终於来到终点拉! 前几届参加一直半途而废的我,这次因为有大团队的组队, 不管是激励或压力,都促使...
好啦,今天国庆日,我不想逼迫自己咩,其实是我今天写不出来,写不出的题号是56. Merge Inte...