常见距离算法-欧氏距离、杰卡德距离、余弦距离

常见距离算法-欧氏距离、杰卡德距离、余弦距离

1.欧氏距离(Euclidean Distance)

表示n维空间中两个点之间的实际距离。欧式距离越小相似度越大。
已知两个点:
A = ( a 1 , a 2 , . . . , a n ) , B = ( b 1 , b 2 , . . . , b n ) A=(a_{1},a_{2},...,a_{n}),B=(b_{1},b_{2},...,b_{n}) A=(a1,a2,...,an),B=(b1,b2,...,bn)则AB间的距离为:
d ( A , B ) = ∑ ( a i − b i ) 2 ( i = 1 , 2 , . . . , n ) d(A,B)=\sqrt{\sum (a_{i}-b_{i})^{2}} (i=1,2,...,n) d(A,B)=(aibi)2 (i=1,2,...,n)

2.杰卡德距离(Jaccard Distance)

2.1 Jaccard相似系数(Jaccard Coefficient)

主要用于计算符号度量或布尔值度量的样本间的相似度。

两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示:
J ( A , B ) = A ⋂ B A ⋃ B J(A,B)=\frac{A\bigcap B}{A\bigcup B} J(A,B)=ABAB杰卡德系数值越大,样本的相似度越高。

2.2 Jaccard距离

用来衡量两个集合差异性的一种指标,它是杰卡德相似系数的补集,被定义为1减去Jaccard相似系数:
J δ = 1 − J ( A , B ) = ∣ A ⋃ B ∣ − ∣ A ⋂ B ∣ ∣ A ⋃ B ∣ J_{\delta }=1-J(A,B)=\frac{\left| A\bigcup B\right|-\left| A\bigcap B\right|}{\left| A\bigcup B\right|} Jδ=1J(A,B)=ABABAB适用于集合相似性度量,字符串相似性度量 。

注:re-ranking论文运用到了杰卡德距离进行重排序。(暂时没仔细看)

3.余弦距离(Consine distance)

3.1 余弦相似度(Consine similarity)

c o s s i m ( x , y ) = ∑ i x i y i ∑ i x i 2 ∑ i y i 2 = < x , y > ∥ x ∥ ∥ y ∥ cossim(x,y)=\frac{\sum_{i}^{}x_{i}y_{i}}{\sqrt{\sum_{i}^{}x_{i}^{2}}\sqrt{\sum_{i}^{}y_{i}^{2}}}=\frac{ }{\left\| x\right\|\left\|y \right\|} cossim(x,y)=ixi2 iyi2 ixiyi=xy<x,y>

3.2 余弦相距离

常见距离算法-欧氏距离、杰卡德距离、余弦距离_第1张图片

你可能感兴趣的:(基础知识,算法,机器学习,概率论)