kNN-k近邻算法

k近邻学习简介

如下是西瓜书里面的介绍:
k 近邻 (k-Nearest Neighbor,简称 kNN )学 习是一种常用的监督学习 方法,
其工作机制非常简单: 给定测试样本?基于某种距离度量找出 训练集中 与其最
靠近的 k 个训练样本,然后基于这 k 个"邻居 “的信息来进行预测 . 通常 , 在分
类任务中可使用"投票法” 即选择这 k 个样本中出现最多的类别标记作为预
测结果;在回归任务中时使用"平均法" ,即将这 k 个样本的实值输出标记 的
平均值作为预测结果;还可基于距离远近进行加权平均或加权投票,距离越近
的样本权重越大. ------ 《机器学习》周志华
个人理解是,物以类聚,“距离”正是样本的特征属性相似度的度量,一个样本的分类和他周边k个最近样本中数量最多的一类是同类的概率最大。
距离:这个距离是指欧氏距离
K的含义就是和预测样本的距离最小的有标记样本的数量。

实施kNN算法步骤

  1. 计算已知类别数据集中的点与当前点之间的距离(整个训练集都要计算)
  2. 按照距离递增次序排序
  3. 选取与当前距离最小的k个点
  4. 确定k个点所在类别的出现频率
  5. 返回前k个点出现频率最高的类别作为当前点的预测分类
    如上步骤可知,整个kNN算法的实施过程中并没有‘学习’的过程,直接依据训练集的样本做出预测。
    算法调参就是调的这个K

优点

简单有效、精度高、对异常值不敏感、无数据输入假定
西瓜书有推导,得到一个结论:kNN虽简单,但它的泛化错误率不超过贝叶斯最优分类器的两倍。

缺点

计算复杂读高、空间复杂度高,原因就是每次预测都要把整个训练集都算一遍,特征数、样本数一增加计算量大幅度上升;
没有特征偏好,特征属性会等同偏好地参与到评估预测中。

适用数据范围

数值型 和 标称型(类似于枚举类别这样的,如true和false)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值