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)懒惰算法,对测试样本分类时的计算量大,内存开销大,评分慢;

(2)可解释性较差,无法给出决策树那样的规则。

3.常见问题

1)k值设定为多大?
    (1)k太小,分类结果易受噪声点影响;k太大,近邻中又可能包含太多的其它类别的点。&#x

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

  1. MATLAB从入门到精通系列-非线性曲线拟合函数lsqcurve()详解

    前言 以下是我为大家准备的几个精品专栏,喜欢的小伙伴可自行订阅,你的支持就是我不断更新的动力哟! MATLAB-30天带你从入门到精通 MATLAB深入理解高级教程(附源码) tableau可视化数据 ...

  2. MATLAB从入门到精通系列之MATLAB维度获取size()函数详解

    1.预备知识 维度获取size()主要用获取矩阵维度,常用于获取一维向量的长度,二维矩阵的行.列维度,以及高维数组的维度,方便对矩阵进行相关运算. 打开MATLAB运行界面进行准备. 2.size() ...

  3. MATLAB从入门到精通系列之几个实用小技巧

    1.help:最有效的命令 其实可以这样说吧,如果离开matlab软件,我想我自己是基本上什么都不会.一遇到什么问题,通常我的第一反应是:help,就先说说自己对help的一些常用方法吧. (1)命令 ...

  4. MATLAB从入门到精通系列之如何在MATLAB中导入excel单sheet页及多sheet页表格

    前言 一个excel表格中可能有一个Sheet或多个Sheet,虽然在MATLAB中只需要加些代码即可轻松实现,但是为了帮助各位小伙伴更容易理解. 因此,分为两部分讲解:1)excel表格中只有一个S ...

  5. MATLAB从入门到精通系列之MATLAB常见问题集锦-(二)

    1.在MATLABParallel Computing Toolbox中,我能使用的最大worker数是多少? 在 R2013b 之后的版本(不含)中,MATLAB Parallel Computin ...

  6. MATLAB从入门到精通系列之matlab常见问题集锦-(一)

    1.如何修改 MATLAB 启动时的工作路径? 至少有以下三种方法: 1.MATLAB 主页->预设->常规,右侧可以设置启动时的工作路径. 2.建立 startup.m 文件,在文件中写 ...

  7. 【机器学习入门到精通系列】粒子群优化算法

    文章目录 1 粒子群算法简介 2 算法流程 3 粒子群算法模型(不懂就不看哦) 4 代码 1 粒子群算法简介 粒子群算法(Particle Swarm Optimization,PSO)是一种模仿鸟群 ...

  8. 【ArcGIS遇上Python】从入门到精通系列之第一章:ArcGIS Python简介

    文章目录 1. Python简介 2. Python的特点 3. ArcGIS的脚本语言 4. ArcGIS中的Python脚本编辑器 1. Python简介 Python是一种跨平台的计算机程序设计 ...

  9. Linux从入门到精通系列之PPTP

    Linux从入门到精通系列之PPTP 今天我们来说下怎么在linux环境下如何搭建PPTP-×××,PPTP(Point to Point Tunneling Protocol),即点对点隧道协议.该 ...

最新文章

  1. Window10 VS17下 Opencv3.4.5配置
  2. 如何创建高性能、可扩展的Node.js应用?
  3. 常见的浏览器兼容性问题与解决方案——CSS篇
  4. NMS 非极大值抑制
  5. java类验证和装载顺序_JVM类加载过程分析及验证
  6. 类似纪念碑谷的unity2d素材包_有哪些免费的音效素材网站?
  7. 【算法】Floyd-Warshall算法(任意两点间的最短路问题)(判断负圈)
  8. [毕业生的商业软件开发之路]C#语法基础结构
  9. java读取html文件内容的代码_【代码审计】xyhcms3.5后台任意文件读取
  10. 大学中计算机考查课不及格怎么办,大学体测不及格怎么办 有哪些补救方法
  11. 6.1.1.2 属性类型之访问器属性
  12. 地理探测器“运行时系统找不到指定文件”报错
  13. Android SN号修改 serial number修改 adb devices显示串号修改
  14. Win10 利用快捷键,快速新建TXT文档
  15. 甲骨文裁员,这是一个危险信号
  16. Sphinx语音识别
  17. 一则 HTTP 405 Method Not Allowed 的解决办法
  18. [html + css] SVG动画 发光渐变炫彩猫猫头
  19. anguarjs 上传图片预览_前端战五渣学前端——FileReader预览本地文件
  20. 计算机ps相框怎么做,PS教程制作相框

热门文章

  1. 【UIKit】TabView
  2. 文件服务器的迁移(包括权限)
  3. packet tracer使用心得(二)
  4. 监控 WebBrowser 控件内容的改变
  5. winlogon.exe病毒的查杀方法
  6. [C#] C#访问数据库(SQL Server版本)
  7. win10如何使用pip下载适合自己python版本的matplotlib?(亲测有效)
  8. Leetcode5633. 计算力扣银行的钱[C++题解]:模拟简单
  9. channels java_Java NIO channels
  10. linux 防火墙开启1521端口,linux防火墙开放1521端口