1.欧氏距离(Euclidean Distance)

欧式距离全称是欧几里距离,源自欧式空间中两点间的距离公式。

1.平面空间内两点a(x1,y1),b(x2,y2)的欧式距离为:

欧氏距离相似度计算python_协方差矩阵


2.三维空间里的欧氏距离

欧氏距离相似度计算python_协方差_02

2.马氏距离(Mahalanobis Distance)

基础知识

1.方差:方差是标准差的平方,而标准差的意义是数据集中各个点到均值点距离的平均值。反应的是数据的离散程度。

2.协方差:标准差与方差是描述一维数据的,当存在多维数据时,我们通常需要知道每个维数的变量中间是否存在关联。协方差就是衡量多维数据集中,变量之间相关性的统计量。比如说,一个人的身高与他的体重的关系,这就需要用协方差来衡量。如果两个变量之间的协方差为正值,则这两个变量之间存在正相关,若为负值,则为负相关。

3.协方差矩阵,当变量多了,超过两个变量了。那么,就用协方差矩阵来衡量这么多变量之间的相关性。假设 XX是以 n 个随机变数(其中的每个随机变数是也是一个向量,当然是一个行向量)组成的列向量:

欧氏距离相似度计算python_概率分布_03


其中,μi是第i个元素的期望值,即μi=E(Xi)。协方差矩阵的第i,j项(第i,j项是一个协方差)被定义为如下形式:

欧氏距离相似度计算python_协方差矩阵_04


即:

欧氏距离相似度计算python_协方差矩阵_05


矩阵中的第 (i,j) 个元素是 Xi 与 Xj 的协方差。

马氏距离

Mahalanobis距离是表示数据的协方差距离。它是一种有效的计算两个未知样本集的相似度的方法。与欧氏距离不同的是它考虑到各种特性之间的联系。

1.单个数据点的马氏距离

欧氏距离相似度计算python_协方差_06


2.数据点x, y之间的马氏距离

欧氏距离相似度计算python_协方差_07


其中Σ是多维随机变量的协方差矩阵,μ为样本均值,如果协方差矩阵是单位向量,也就是各维度独立同分布,马氏距离就变成了欧氏距离。

3.余弦相似度(Cosine)

4.汉明距离(Hamming Distance)

5.曼哈顿距离(Manhattan Distance)

6.皮尔逊相关系数(Pearson)

7.KL 散度( KL-Divergence)

KL 散度又叫相对熵(relative entropy),可以衡量概率分布之间的距离 。KL散度是描述两个概率分布P和Q之间差异的一种方法。直观地说,可以用来衡量给定任意分布偏离真实分布的程度,如果两个分布完全匹配,那么KL(p||q)=0

1.离散概率分布的KL散度计算公式:

欧氏距离相似度计算python_欧氏距离相似度计算python_08


2.连续概率分布的KL散度计算公式:

欧氏距离相似度计算python_欧氏距离相似度计算python_09


在 Softmax 回归(或者 Logistic 回归),最后的输出节点上的值表示这个样本分到该类的概率,这就是一个概率分布。对于一个带有标签的样本,我们期望的概率分布是:分到标签类的概率是 1, 其他类概率是 0。我们不可能得到完美的概率输出,能做的就是尽量减小总样本的 KL 散度之和(目标函数)。这就是 Softmax 回归或者 Logistic 回归中 Cost function 的优化过程。