在很多机器学习算法和任务中,经常需要度量两个样本或向量之间的距离或相似度,下面列出一些常见的度量方式及其应用:
1.常见的距离算法
1.1欧几里得距离(Euclidean Distance)
基本上就是两个点的空间距离,下面这个图就能很明显的说明他和余弦相似度区别,欧式距离更多考虑的是空间中两条直线的距离,而余弦相似度关心的是空间夹角。
1.2曼哈顿距离(Manhattan Distance)
曼哈顿距离也称为城市街区距离(City Block distance),也就是在欧几里得空间的固定直角坐标系上两点所形成的线段对轴产生的投影的距离总和。
where
{\displaystyle (\mathbf {p} ,\mathbf {q} )}
are
vectors
-
{\displaystyle \mathbf {p} =(p_{1},p_{2},\dots ,p_{n}){\text{ and }}\mathbf {q} =(q_{1},q_{2},\dots ,q_{n})\,}
-
2.常见的相似度(系数)算法
2.1余弦相似度(Cosine Similarity)
几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来
衡量样本向量之间的差异
。
where
{\displaystyle A_{i}}
and
{\displaystyle B_{i}}
are
components
of vector
{\displaystyle A}
and
{\displaystyle B}
respectively
2.2皮尔森相关系数(Pearson Correlation Coefficient)
上面是总体相关系数,常用希腊小写字母 ρ 作为代表符号。估算样本的协方差和标准差,可得到样本相关系数(样本皮尔逊系数)。
-
is the
covariance
-
{\displaystyle \sigma _{X}}
is the
standard deviation
of
{\displaystyle X}
-
{\displaystyle \sigma _{Y}}
is the standard deviation of
{\displaystyle Y}
2.3Jaccard相似系数(Jaccard Coefficient)
意思是两个集合的交集除以并集,比如文本相似度可以用出现相同词个数进行计算。
友情推荐:ABC技术研习社
为技术人打造的专属A(AI),B(Big Data),C(Cloud)技术公众号和技术交流社群。