KNN算法原理及编程实现

Author:shoupt-Johnson•smith

原创,转载者请注明来处

一:KNN算法概述:
KNN算法又称之为K-最近邻算法。它是一种基本分类算法。其原理大致如下:
即一个样本在某个特征空间中有k个最近邻的样本,而这些中大多数样本属于同一类别,则该样本所属类别应与该类别一致。同时,该样本具有这个类别的样本特征。
如此该算法在确定分类的决策上只通过最近邻的k个样本的类别来决定待分类样本的所属类别。

二:KNN算法三要素:
从上述算法概述可以看出,其原理很简单。如此,KNN的实现过程同样也简单。
KNN算法的实现过程有三要素:k值的选择、样本间距离度量、决策(即用什么规则来确定)。首先我会从距离度量开始介绍:
2.1 样本间距离度量:
knn模型的特征空间一般是n维实数向量空间。而特征空间中两点间的距离可以看做是两个样本相似度的度量,反映为在空间上与集群距离的接近程度。进一步说,特征空间中两点间的距离又称之为向量的距离。
对于两个n维向量A(X1,X2,…,Xn)和B(Y1,Y2,…,Yn)。常用的距离有闵可夫斯基距离(里边又包含其他的距离)、欧氏距离、曼哈顿距离、切比雪夫距离、余弦距离。
闵可夫斯基距离:是一种通用距离,通过设定参数l的值来得到相应距离:
在这里插入图片描述
而l=1时,则是曼哈顿距离:差的绝对值之和

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值