MATLAB从入门到精通系列之如何实现KNN算法

本文详细介绍了KNN算法的原理,包括算法描述、优缺点、常见问题和性能问题。KNN是一种懒惰学习算法,分类时需要计算测试样本与所有训练样本的距离。其优点是简单易懂,无需训练;缺点是计算量大,对测试样本分类慢。k值的选择、类别判定和距离衡量都是关键问题。文章还提到可以对训练样本赋予不同权重以优化性能。
摘要由CSDN通过智能技术生成

     KNN算法又称为k近邻分类(k-nearest neighbor classification)算法,它将样本分到离它最相似的样本所属的类。该算法的本质上采用模板匹配的思想,要确定一个样本的类别,通过计算它与所有训练样本的距离来找出和该样本最接近的k个样本,统计这些样本的类别进行投票,票数最多的那个类就是分类结果。

kNN算法概述  

 1.KNN算法描述

    (1)初始化训练集和类别;

    (2)计算测试集样本与训练集样本的欧氏距离;

    (3)根据欧氏距离大小对训练集样本进行升序排序;

    (4)选取欧式距离最小的前K个训练样本,统计其在各类别中的频率;

    (5)返回频率最大的类别,即测试集样本属于该类别。

2.优缺点


    1)优点
    (1) 简单,易于理解,易于实现,无需估计参数,无需训练
适合对稀有事件进行分类(例如当流失率很低时,比如低于0.5%,构造流失预测模型);
    (2)特别适合于多分类问题(multi-modal,对象具有多个类别标签),例如根据基因特征来判断其功能分类,kNN比SVM的表现要好。
    2)缺点
    (1)懒惰算法,对测试样本分类时的计算量大ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文宇肃然

精神和物质鼓励你选一个吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值