k近邻算法
定义:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别
计算距离公式:利用欧式距离定义 ( a 1 − b 1 ) 2 + . . . + ( a n − b n ) 2 \sqrt{(a_1-b_1)^2+...+(a_n-b_n)^2} (a1−b1)2+...+(an−bn)2
由上述公式可看出k近邻算法需要进行标准化处理
- 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方法的值来决定最合适的算法。 (不同实现方式影响效率)
from sklearn.neighbors import KNeighborsClassifier
knn