# 有哪些距离

## 1、欧氏距离

## 2、曼哈顿距离

* 二维平面两点a(x1,y1)与b(x2,y2)间的曼哈顿距离：

Dist=|x1-x2|+|y1-y2|

* 两个n维向量

  $$
  a=(x\_{11},x\_{12},....,x\_{1n})
  $$

$$
b=(x\_{21},x\_{22},....,x\_{2n})
$$

间的曼哈顿距离：

$$
d\_{12}=\sum\_{k=1}^{n}|x\_{1k}-x\_{2k}|
$$

## 3.切比雪夫距离

* 若二个向量或二个点p 、q

$$D\_{chebyshev}(p,q)=max\_{i}(|p\_i-q\_i|)$$

* 二维平面两点a(x1,y1)与b(x2,y2)间的切比雪夫距离为：

$$d\_{12}=max(|x\_1-x\_2|,|y\_1-y\_2|)$$

* 两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的切比雪夫距离为：　

$$d\_{12}=max\_{i}(|x\_{1i}-x\_{2i}|)$$

## 4.闵可夫斯基距离(Minkowski Distance)

闵氏距离不是一种距离，而是一组距离的定义。两个n维变量

$$
a=(x\_{11},x\_{12},....,x\_{1n})
$$

$$
b=(x\_{21},x\_{22},....,x\_{2n})
$$

间的闵可夫斯基距离定义为：

$$
d\_{12}= \sqrt\[p]{\sum\_{k=1}^{n}|x\_{1k}-x\_{2k}|}
$$

其中p是一个变参数。 当p=1时，就是曼哈顿距离 当p=2时，就是欧氏距离 当p→∞时，就是切比雪夫距离

## 5.马氏距离(Mahalanobis Distance)

向量Xi与Xj之间的马氏距离定义为：

协方差矩阵记为S

$$
D(X\_i,X\_j)=\sqrt\[p]{(X\_i-X\_j)^TS^{-1}(X\_i-X\_j)}
$$

马氏距离的优缺点：`量纲无关，排除变量之间的相关性的干扰`。

## 6.巴氏距离（Bhattacharyya Distance）

## 7.汉明距离(Hamming distance)

两个等长字符串s1与s2之间的汉明距离定义为将其中一个变为另外一个所需要作的最小替换次数。例如字符串“1111”与“1001”之间的汉明距离为2。应用：信息编码（为了增强容错性，应使得编码间的最小汉明距离尽可能大）。

## 8.夹角余弦(Cosine)

几何中夹角余弦可用来`衡量两个向量方向的差异`，机器学习中借用这一概念来衡量样本向量之间的差异。

夹角余弦取值范围为\[-1,1]。夹角余弦越大表示两个向量的夹角越小，夹角余弦越小表示两向量的夹角越大。

当两个向量的方向重合时夹角余弦取最大值1，当两个向量的方向完全相反夹角余弦取最小值-1。

* 在二维空间中向量A(x1,y1)与向量B(x2,y2)的夹角余弦公式：

$$
cos\theta=\frac{x\_1x\_2+y\_1y\_2}{\sqrt{x\_1^2+y\_1^2}\sqrt{x\_2^2+y\_2^2}}
$$

* 两个n维样本点

  $$
  a=(x\_{11},x\_{12},....,x\_{1n})
  $$

  $$
  b=(x\_{21},x\_{22},....,x\_{2n})
  $$

  间的夹角余弦

$$
cos\theta=\frac{a.b}{|a||b|}
$$

$$
cos\theta=\frac{\sum\_{k=1}^{n}x\_{1k}x\_{2k}}{\sqrt{\sum\_{k=1}^{n}x\_{1k}^2}\sqrt{\sum\_{k=1}^{n}x\_{2k}^2}}
$$

## 9.杰卡德相似系数(Jaccard similarity coefficient)

杰卡德相似系数是衡量两个集合的相似度一种指标。

两个集合A和B的交集元素在A，B的并集中所占的比例，称为两个集合的杰卡德相似系数，用符号J(A,B)表示。

$$
J(A,B)=\frac{A \cap B}{A \cup B}
$$

### 杰卡德距离

杰卡德距离用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度。

与杰卡德相似系数相反的概念是杰卡德距离(Jaccard distance)。 杰卡德距离可用如下公式表示：

$$
J\_c(A,B)=1-J(A,B)=\frac{|A \cup B|-|A \cap B|}{|A \cup B|}
$$


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://im-qianuxn.gitbook.io/pytorch/ji-suan-ji/ml/wen-da/ml-ju-li.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
