kNN k近邻算法是思想极度简单;效果好;应用数学知识少
练习数据
1 | import numpy as np |
kNN的过程
欧拉距离


实现欧拉距离;获得测试点与所有点的距离
1 | from math import sqrt |
1 | distances = [sqrt(np.sum((x_train - x)**2)) for x_train in X_train] |
对数据进行排序,返回数组的索引
1 | nearest = np.argsort(distances) |
设置最近的k个点 获取最近点的y的数据值
1 | k = 6 |
把数组中的值进行归纳 Counter;获取最多的值
1 | from collections import Counter |
kNN 算法封装
1 | import numpy as np |

使用scikit-learn中的kNN
https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html
1 | from sklearn.neighbors import KNeighborsClassifier |
重复构造自定义kNN类
1 | import numpy as np |