一,KNN基本流程
1、概念:
KNN(K Near Neighbor):k个最近的邻居,即每个样本都可以用它最接近的k个邻居来代表。
最近邻 (K-Nearest Neighbors, KNN) 算法是一种分类算法, 1968年由 Cover和 Hart 提出, 应用场景有字符识别、 文本分类、 图像识别等领域。
该算法的思想是: 一个样本与数据集中的k个样本最相似, 如果这k个样本中的大多数属于某一个类别, 则该样本也属于这个类别。
2、距离度量:
在选择两个实例相似性时,一般使用的欧式距离
在说这个之前,我们先来说几个距离概念吧。
3、距离概念
对于一些常见的距离先做一个简单的说明
假设X和Y都是一个n维的向量,即
X= ( x 1 x_{1} x1, x 2 x_{2} x2, x 3 x_{3} x3,…, x n x_{n} xn),Y= ( y 1 y_{1} y1, y 2 y_{2} y2, y 3 y_{3} y3,…, y n y_{n} yn)
3.1曼哈顿距离
来源于美国纽约市曼哈顿区,因为曼哈顿是方方正正的。
对应L1范数 。
D ( X , Y ) = ∑ i = 1 n ∣ x i − x j ∣ D(X,Y)=\sum_{i=1}^{n}\left | x_{i}-x_{j} \right | D(X,Y)=i=1∑n∣xi−xj∣
3.2欧式距离
对应L2范数
D ( X , Y ) = ∑ i = 1 n ( x i − x j ) 2 D(X,Y)=\sqrt{\sum_{i=1}^{n}(x_{i}-x_{j} )^{2}} D(X,Y)=i=1∑n(xi−xj)2
3.3切比雪夫距离
切比雪夫距离是将2个点之间的距离定义为其各坐标数值差的最大值。
对应L∞范数
D ( X , Y ) = m a x ( ∣ x 1 − x 1 ∣ , ∣ x 2 − x 2 ∣ ,