KNN算法原理1
K-Nearest Neighbor(KNN)分类算法的思路:
预测一个新的值x的类别时,根据它距离最近的K个点是什么类别来判断x属于哪个类别。距离的计算方法通常为欧氏距离、曼哈顿距离等。
如图所示,绿色方框为新的数值,要对其进行分类,当K=3时,距离绿色方块的三个点中蓝色三角形数量最多,所以绿色方块被分到蓝色三角形的类别中;当K=5时,距离绿色方块最近的5个点中,红色圆形的数量最多,所以绿色方块被分到红色圆形的类别。
优点:算法简单,易于实现,无需估计参数(非参算法)
缺点:数据量大时,对内存要求较高,预测阶段计算耗时
调用模型
用sklearn自带的数据集来调用模型做分类预测
from sklearn import datasets #datasets是sklearn自带的数据集群
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
iris = datasets.load_iris() #用datasets自带的iris数据集
iris_x = iris.data #花的特性:花瓣的长宽高等属性
iris_y = iris.target #花的类别
print(iris_x[:5]) #花瓣的四个特性
[[5.1 3.5 1.4 0.2]
[4.9 3. 1.4 0.2]
[4.7 3.2 1.3 0.2]
[4.6 3.1 1.5 0.2]
[5. 3.6 1.4 0.2]]
print(iris_y) #花的分类,有0,1,2三种
[0