机器学习笔记——KNN (K Nearest Neighbors)

KNN(K Nearest Neighbors)是一种机器学习的近邻算法,通过计算新数据点与已有数据点的欧式距离来分类。在n维空间中,KNN使用不同的距离公式如欧式距离、曼哈顿距离等。该算法简单易懂,但存在内存消耗大、不适合大规模数据运算等缺点。在Python中,可以进行数据预处理、训练集划分和归一化操作,并通过交叉验证选择最优的K值进行模型训练和测试。
摘要由CSDN通过智能技术生成

什么是K邻近算法 (KNN):

查看源图像

比如说在这样一个图中,我们将已知的带有标签的数据(labeled data)放在一个直角坐标系中。现在如果我们读取了一个新的数据,我们想要分辨它是属于哪一种生物(这里用颜色表示)。先同样的将它放入这个坐标系中,然后分别计算出这个点与每一个已经出现过的点的欧式距离(Euclidean Distance)然后与以他最相邻的k个点的类别来判断它的类别。

假设我们现在不知道(5,3.0)这个点的类别,同时我们将参数k设为5。我们就得到了与之相邻的5个点都是setosa(红色)所以模型预测这个点的类别也是setosa。

而当这些数据的特征大于2也就是说当把数据呈现在n维空间中(n>2),欧式距离公式为

 而在这个算法中计算两点的距离不一定是欧式距离,还有曼哈顿距离,切比雪夫距离和默认的闵可夫斯基距离。

KNN的特点与优劣:

K邻近是一种惰性算法&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值