机器学习 - 分类 K 最近邻分类算法 K Nearest Neighbor(学习笔记)

在学习 KNN 算法的过程中,要牢记两个关键词,一个是“少数服从多数”的投票法则(majority-voting),另一个是“距离”,它们是实现 KNN 算法的核心知识。

KNN算法原理

KNN算法本身简单有效,它是一种lazy-learning算法。分类器不需要使用训练集进行训练,训练时间复杂度为0。KNN分类计算复杂度和训练集中的文档数目成正比,也就是说,如果训练集中文档总数为n,那么KNN的分类时间复杂度为O(n)。

KNN 算法简单易于理解,无须估计参数,与训练模型,适合于解决多分类问题、OCR光学模式识别、文本分类等领域。但它的不足是,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有很能导致当输入一个新样本时,该样本的 K 个邻居中大容量类的样本占多数,而此时只依照数量的多少去预测未知样本的类型,就会可能增加预测错误概率。此时,我们就可以采用对样本取“权值”的方法来改进。

KNN算法流程

对于未知类别属性数据集中的点:

1.计算已知类别数据集中的点与当前点的距离

2.按照距离依次排序

3.选取与当前点距离最小的K个点

4.确定前K个点所在类别的出现概率

5.返回前K个点出现频率最高的类别作为当前点预测分类

K值减少意味着模型变得复杂,容易受到异常点的影响,容易过拟合;K

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值