机器学习-距离度量
距离的基本性质
- 非负性:距离一定大于等于0
- 同一性:如果距离为0,两点相同
- 对称性:a ~ b的距离等于b ~ a的距离
- 直递性:a ~ c的距离<= a ~ b 加上 b ~ c
闵可夫斯基距离
闵氏距离不是一种距离,而是一组距离的定义。
两个n维变量的距离如下
d = ∑ k = 1 n ∣ x 1 k − x 2 k ∣ p p d = \sqrt[p]{\sum_{k=1}^n | x_{1k} -x_{2k}|^p} d=p∑k=1n∣x1k−x2k∣p
p = 1 p=1 p=1曼哈顿距离
维度绝对值之和
p = 2 p=2 p=2欧式距离
常见距离公式
p = ∞ p=\infin p=∞切比雪夫距离
所有维度取绝对值最大的差值
闵氏距离缺点
(1)将各个分量的量纲(scale),也就是“单位”相同的看待了;
(2)未考虑各个分量的分布(期望,方差等)可能是不同的。
标准化欧氏距离
标准化欧氏距离是针对欧氏距离的缺点而作的一种改进。
思路:既然数据各维分量的分布不一样,那先将各个分量都“标准化”到均值、方差相等。
d = ∑ k = 1 n ∣ x 1 k − x 2 k s k ∣ 2 d = \sqrt{\sum_{k=1}^n | \frac{x_{1k} -x_{2k}}{s_k} |^2} d=∑k=1n∣skx1k−x2k∣2
加权欧氏距离
d = ∑ k = 1 n ∣ 1 x 1 k − x 2 k ∣ 2 d = \sqrt{\sum_{k=1}^n | \frac{1}{x_{1k} -x_{2k}} |^2} d=∑k=1n∣x1k−x2k1∣2
余弦距离
d = a → ⋅ b → ∣ a → ∣ + ∣ b → ∣ d =\frac{\overrightarrow{a} \cdot \overrightarrow{b}}{|\overrightarrow{a}|+|\overrightarrow{b}|} d=∣a∣+∣b∣a⋅b
汉明距离
两个等长字符串s1与s2的汉明距离为:将其中一个变为另外一个所需要作的最小字符替换次数。(词阶问题)
杰卡德距离
衡量集合距离:统计元素个数用于计算
杰卡德相似系数 D ( A , B ) = A ⋂ B A ⋃ B D(A,B) = \frac{A \bigcap B}{A \bigcup B} D(A,B)=A⋃BA⋂B
杰卡德距离 D ( A , B ) = ( A ⋃ B ) − ( A ⋂ B ) A ⋃ B D(A,B) = \frac{(A \bigcup B) - (A \bigcap B)}{A \bigcup B} D(A,B)=A⋃B(A⋃B)−(A⋂B)
马氏距离(待完善)
马氏距离是基于样本分布的一种距离,考虑到各种特性之间的联系。
1.量纲无关,排除变量之间的相关性的干扰;
2.马氏距离的计算是建立在总体样本的基础上的,如果拿同样的两个样本,放入两个不同的总体中,最后计算得出的两个样本间的马氏距离通常是不相同的,除非这两个总体的协方差矩阵碰巧相同;
3 .计算马氏距离过程中,要求总体样本数大于样本的维数,否则得到的总体样本协方差矩阵逆矩阵不存在,这种情况下,用欧式距离计算即可。
4.还有一种情况,满足了条件总体样本数大于样本的维数,但是协方差矩阵的逆矩阵仍然不存在,比如三个样本点(3,4),(5,6),(7,8),这种情况是因为这三个样本在其所处的二维空间平面内共线。这种情况下,也采用欧式距离计算。