常见距离算法-欧氏距离、杰卡德距离、余弦距离
1.欧氏距离(Euclidean Distance)
表示n维空间中两个点之间的实际距离。欧式距离越小相似度越大。
已知两个点:
A=(a1,a2,...,an),B=(b1,b2,...,bn)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)=∑(ai−bi)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⋂BA⋃BJ(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)
cossim(x,y)=∑ixiyi∑ixi2∑iyi2=<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>