KNN算法

k近邻算法(k-nearest-neighbor),对于一个样本,在一个特征空间中的k个最相似的样本中的大多数都属于一个类别,则该样本也属于该类别。KNN不仅适应于分类,还适应于回归,通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,作为预测值。

两个样本之间的距离通过欧式距离来计算。

举例:
KNN算法
KNN算法

在计算两个样本之间的距离时,特征有什么影响?需要对数据做些什么?
直接对两个原始数据的样本进行欧式距离计算,特征值数据范围大小不一样会使得分类不准确,需要对数据标准化。

API:
sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,algorithm=‘auto’)

n_neighbors:int,可选(默认= 5),k_neighbors查询默认使用的邻居数

algorithm:{‘auto’,‘ball_tree’,‘kd_tree’,‘brute’},可选用于计算最近邻居的算法:‘ball_tree’将会使用 BallTree,‘kd_tree’将使用 KDTree。‘auto’将尝试根据传递给fit方法的值来决定最合适的算法。 (不同实现方式影响效率)