K近邻算法(KNN,k-NearestNeighbor)
k近邻算法是机器学习中的最基础的算法之一,也是必须会讲解的算法之一。因为其简单,易懂。但是K近邻算法在实际应用中却很少使用到,由于其局限性很强,运行效率低下。
那么所谓的K近邻中的近邻是指:已有一个训练数据集,现给定一个新的数据,利用现有数据集对其进行预测,那么预测方法便是寻找与给定数据距离最近的K个点。那么从这K个点当中对不同的数据个数进行统计,新数据的预测结果就是K个点当中数量最多的这个点对应的结果。
如图所示:取K的值为3,则寻找与给定点(红点)距离最近的k(3)个点,其中绿色点的数量(2)大于蓝色点的数量(1),所以预测该红点的结果应该和绿点对应的类型相一致。
根据机器学习的步骤,我们进行如下操作:
-
投入大量资料进行训练
# 加载数据(本例中使用开源数据库中的鸢尾花数据)
from sklearn.dataset import load_iris
import numpy as np
iris = load_iris() #加载数据到iris
"""鸢尾花数据原始有四个特征,为了绘图方便,我们只使用其两个特征"""
X_train = np.array([iris.data[:,0],iris.data[:,1])
y_train = np.array(iris.target)