KNN(K Near Neighbor)最近邻算法

KNN(K Near Neighbor)算法是一种基于实例的学习,通过计算样本间距离进行分类。本文介绍了KNN的基本概念,包括距离度量(如欧氏距离、曼哈顿距离和切比雪夫距离),以及K值选择对模型的影响。KNN算法流程包括计算距离、排序、选取k个最近邻、统计类别频率和预测分类。虽然简单有效,但KNN存在计算量大、类别不均衡等问题。
摘要由CSDN通过智能技术生成

KNN算法

一、概念

KNN(K Near Neighbor):k个最近的邻居,即每个样本都可以用它最接近的k个邻居来代表。

用我们的一句古语来说就是:物以类聚,人以群分。假如一个人的通讯录里有马云、王健林、李嘉诚等,那么这个人肯定也是这个圈子里的人;再假如,一个爱好游戏的人的朋友圈,应该大部分都是玩游戏的;爱喝酒的人的朋友圈,应该都是爱喝酒的;有句话说得好,臭味相投。

最近邻算法是一种分类算法,1968年由Cover和Hart提出,应用场景有字符识别、文本分类、图像识别等领域。
该算法的思想是:一个样本与数据集中的k个样本最相似,如果这k个样本中的大多数属于某一个类别,则该样本也属于这个类别。
在这里插入图片描述
如上图所示:当 k = 1 k=1 k=1时,绿色这个点属于class2;当 k = 5 k=5 k=5时,绿色这个点属于class1。

二、距离度量

KNN的主要思想是计算样本与样本之间的距离,接下来我们介绍距离度量的方法。
在我们选择两个实例相似性时,一般使用欧氏距离进行度量。
L P 距 离 : LP距离: LP L p ( x i , x j ) = ( ∑ i n ∣ x i ( l ) − x j ( l ) ∣ p ) 1 p L_p(x_i,x_j)=(\sum\limits_{i}^n|x_i^{(l)}-x_j^{(l)}|^p)^\frac{1}{p} Lp(xi,xj)=(inxi(l)xj(l)p)p1,其中 x i ∈ R n x_i\in R^n xiRn x j ∈ R n x_j\in R^n xjRn, L ∞ L_\infty L定义为:
L ∞ ( x i , x j ) = m a x l ∣ x i ( l ) − x j ( l ) ∣ L_\infty(x_i,x_j)=\mathop{max}\limits_{l}|x_i^{(l)}-x_j^{(l)}| L(xi,xj)=lmaxxi(l)xj(l)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值