【机器学习】KNN k近邻分类算法

概念

“近朱者赤,近墨者黑”,由你的邻居来推断出你的类别。
从训练集中找到和测试数据最接近的k条记录,然后根据他们的主要分类来决定新数据的类别。该算法涉及3个主要因素:训练集、距离或相似的度量、k的大小。

步骤

  1. 算距离:给定测试对象,计算它与训练集中的每个对象的距离
  2. 找邻居:圈定距离最近的k个训练对象,作为测试对象的近邻
  3. 做分类:根据这k个近邻归属的主要类别,确定测试对象的分类

主要问题

k的大小

如何选择一个最佳的K值,这取决于数据。一般情况下,在分类时较大的K值能够减小噪声的影响。但会使类别之间的界限变得模糊。一个较好的K值可通过各种启发式技术来获取,比如,交叉验证。另外噪声和非相关性特征向量的存在会使K近邻算法的准确性减小。

距离计算

  • 欧式距离: d=(ab)T(ab)
  • 夹角余弦: cos(θ)=aTb|a||b|

分类策略

  • 投票决定:少数服从多数,近邻中哪个类别的点最多就分为该类。
  • 加权投票法:根据距离的远近,对近邻的投票进行加权,距离越近则权重越大(权重为距离平方的倒数)

评价

优点

  • 思想简单
  • 适用非线性分类
  • 特别适合于多分类问题

缺点

  • 样本不均衡
  • 计算量大,内存开销大
  • 可解释性差
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值