K-近邻算法(KNN)

kNN的英文全称是:k nearest neighbor,直译过来的意思就是k个最相近的邻居。所以,kNN的算法思想,简单而言,就是利用与待分类对象最相近的k个已知对象的特征,来决定待分类对象的特征。这种分类方法的思想简单,在实际分类效果中,表现也较为优异,是数据挖掘的分类领域中的一种入门算法。
下面以一个图例来具体说明kNN的具体思想:
这里写图片描述
图片中有三种颜色表示的诸多实点,分别代表了三种不同的类别。中间的黑色叉号代表了待分类的对象。在对X进行分类的时候,首先需要计算X与所有已知对象之间的距离,然后选择这些距离中最小的k个对象,最后将这k个对象中所属类别最多的那个类,作为X的最终分类。
从图中可以看到,与X最相邻的5个对象中,有4个对象属于红色分类,有1个对象属于绿色分类,所以,我们将X的最终分类认定为红色类。
通过上述的实例的分析,对kNN算法的思想就有了更进一步的理解。接下来,我们把kNN算法的具体步骤进行一下总结:

1. 获取数据集,对数据进行预处理,以满足算法的格式需要
2. 分别计算待分类对象与所有数据集中的其他对象之间的距离
3. 设定k值得大小,并筛选距离最小的k个对象
4. 对k个对象进行统计,获得在k个对象中,各类别所拥有对象的个数
5. 将对象个数最多的类别,作为待分类对象的最终分类结果

基于上述算法的具体步骤,我们需要考虑以下若干问题:

  1. 算法的数据格式问题
  2. 对象之间的距离计算
  3. k值的选择
  4. 算法的计算量

转载于:https://www.cnblogs.com/ritchiewang/p/5767400.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值