常见距离算法-欧氏距离、杰卡德距离、余弦距离
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)=∑(ai−bi)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)=A⋃BA⋂B杰卡德系数值越大,样本的相似度越高。
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δ=1−J(A,B)=∣A⋃B∣∣A⋃B∣−∣A⋂B∣适用于集合相似性度量,字符串相似性度量 。
注: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{<x,y> }{\left\| x\right\|\left\|y \right\|} cossim(x,y)=∑ixi2∑iyi2∑ixiyi=∥x∥∥y∥<x,y>