最近邻算法(k-NearestNeighbor),简称KNN算法。
KNN算法主要分两类,一类是KNeighborsClassifier,一类是KNeighborRegressor。分别进行分类和回归运算。
算法的基本思想:
KNN算法的基本思想可以概括为几步,包括:
1,计算目标点(或分类点)与每一个样本点之间的距离,并将这些距离计算值从小到大进行排序。选出距离该目标点最近的K个样本点。
2,如果是分类问题,则统计这K个样本点中数量最多的类别是哪一类,则将目标点归于这一点,进而完成工作。
3,如果是回归问题,往往预测的是某种属性的值。则统计这K个样本点的该属性值,并对其求平均值。后将平均值赋予为目标点的属性取值,进而完成工作。
基于sklearn实现KNN(基于iris数据)
在这里我们使用一个叫作鸢尾花数据集的数据,这个数据集里面有 150 条数据,共有 3 个类别,即 Setosa 鸢尾花、Versicolour 鸢尾花和 Virginica 鸢尾花,每个类别有 50 条数据,每条数据有 4 个维 度,分别记录了鸢尾花的花萼长度、花萼宽度、花瓣长度和花瓣宽度。
鸢尾花数据集最初由Edgar Anderson 测量得到,而后在著名的统计学家和生物学家R.A Fisher于1936年发表的文章「The use of multiple measurements in taxonomic problems」中被使用,用其作为线性判别分析(Linear Discriminant Analysis)的一个例子,证明分类的统计方法,从此而被众人所知,尤其是在机器学习这个领域。
from sklearn import datasets #sklearn的数据集
from sklearn.neighbors import KNeighborsClassifier #sklearn模块的KNN类
import numpy as np
np.random.seed(0)
iris = datasets.load_iris()
x = iris.data
y = iris.target
print(x,y)
ata
y = iris.target
print(x,y)
![在这里插入图片描述](https://img-blog.csdnimg.cn/f98147ed33fc4ccbb4ba49675b685ab2.png#pic_center)