百度百科:在特征空间中,如果一个样本附近的k个最近(即特征空间中最邻近)样本的大多数属于某一个类别,则该样本也属于这个类别。
比如我们要预测中心点的颜色,
以k=3为半径画一个圆(图中实线圆),此时红点多于蓝点,那么我们推测中心点为红色,
以k=5为半径画一个圆(图中虚线圆),此时蓝点多于红点,那么我们推测中心点为蓝色。
预测鸢尾花种类的代码如下:
from sklearn import datasets
from sklearn.model_selection import train_test_split
iris = datasets.load_iris() # 加载数据集
x = iris.data # 特征
y = iris.target # 标签
# 划分训练集和测试集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3)
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier() # 建立模型
knn.fit(x_train, y_train) # 训练
print(knn.score(x_test, y_test)) # 测试