KNN分类算法(Python3.6实现)

本文介绍了K-Nearest Neighbor(KNN)分类算法的工作原理,包括其利用欧氏距离等方法判断样本类别的思路。文章还讨论了KNN算法的优点,如简单易实现,以及缺点,如对大样本量的内存需求和预测阶段的计算耗时。同时,通过调用sklearn库演示了如何应用KNN模型,并强调了调整n_neighbors参数以优化模型准确性的关键,指出学习曲线显示最佳K值在13至17之间。
摘要由CSDN通过智能技术生成

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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值