机器学习算法—KNN算法原理

概述:

KNN算法一般也会经常被称为K邻近算法,其核心思想是根据训练集中的样本分类计算测试集中样本与训练集中所有样本的距离,根据所设定的K值选取前K个测试样本与训练样本最近的结果,结果中大多数训练样本所处在的类别即是本测试样本的类别。因训练样本的分类结果为已知因此KNN算法属于有监督学习算法。

算法原理:

1、以下图样本散点图展示训练集的整体分布情况

从散点图中可以发现训练集的数据分类数量为3个类别,分别为蓝色类别、红色类别和黄色类别,训练样本总数为15个。
2、导入第一个测试样本

3、需要根据已知的训练样本分类结果判断测试样本的类别,因此计算测试样本与所有训练样本的距离

因训练样本数量为15,所以计算完成的距离参数为15个。
4、K值是KNN算法中唯一需要设定的参数,假定K值为3则在15个距离参数中选择最近的3个

统计3个距离中大部分训练样本所处的分类即为本测试样本的分类,本次分类中距离最近的3个训练样本有2个属于红色类别,因此本测试样本被分类为红色

5、对下一个测试样本以相同方式进行距离计算和分类

注意事项:

1、K的取值尽量为奇数以确保距离计算结果必定会有一个K个距离中包括较多的类别,比如例子中取3,则3个中有2个训练样本为红色类别以此判断测试样本属于红色类别。如K取4产生下图中的情况

4个距离参数中,2个训练样本为红色类别,2个训练样本为蓝色类别,会对预测产生不利效果
2、K取值过小时,较容易受噪声影响而导致误分类

如图中黄色类别中有一个异常数据,如果K取值为1,则测试样本因与此异常数据距离最近,而被分类为黄色类别,从散点图中可以看到,如K为3以上,则应被分类为红色类别,因此K取值过小容易导致由过拟合而引起的误分类。
3、K取值过大时,较容易受距离较远训练样本影响而导致由欠拟合产生的误分类,极端情况下,本文的例子中如果K取值为15,则代表蓝、黄、红,哪个类别的点多测试样本就被分类为哪个样本,因此K不能等于N。

算法的使用场景:

1、适合用于类别间差异较大,同类别间数据差异较小的场景
2、对于类别间的界限不清晰的场景,效果好于基于线性分类的逻辑回归
3、单个测试样本计算都需要计算与训练集中所有训练样本的距离,在数据量较大时会占用非常多的计算力并增加计算时间
4、对于各个类别中数据数量差异较大的场景效果较差,特别在K取值又较大时,占数量优势的类别对于结果的影响非常明显

机器学习算法—KNN算法原理相关推荐

  1. 机器学习之KNN算法原理

    机器学习之KNN算法原理 1 KNN算法简介 2 算法思想 3 多种距离度量公式 ① 欧氏距离(Euclidean distance) ② 曼哈顿距离(Manhattan distance) ③ 闵式 ...

  2. 机器学习:KNN算法对鸢尾花进行分类

    机器学习:KNN算法对鸢尾花进行分类 1.KNN算法的理解: 1.算法概述 KNN(K-NearestNeighbor)算法经常用来解决分类与回归问题, KNN算法的原理可以总结为"近朱者赤 ...

  3. 机器学习实战-KNN算法-20

    机器学习实战-KNN算法-鸢尾花分类 # 导入算法包以及数据集 from sklearn import neighbors from sklearn import datasets from skle ...

  4. 机器学习之KNN算法

    机器学习之KNN算法 1 KNN算法 2 预测电影类型例子 3 sklearn实现KNN算法 4 总结 前言:主要介绍KNN算法的基本原理,公式.sklearn实现knn算法,以及knn的优点缺点使用 ...

  5. 【机器学习】KNN算法实现手写板字迹识别

    文章目录 [机器学习]KNN算法实现手写板字迹识别 1. 前言 2. 实验背景 3. 测试过程 3.1 手写板及测试数据的制作 3.2 加载训练数据并进行KNN模型搭建 3.3 结果预测 4. 总结 ...

  6. 分类算法matlab实例,数据挖掘之分类算法---knn算法(有matlab例子)

    knn算法(k-Nearest Neighbor algorithm).是一种经典的分类算法.注意,不是聚类算法.所以这种分类算法 必然包括了训练过程. 然而和一般性的分类算法不同,knn算法是一种懒 ...

  7. 基于KD树的K近邻算法(KNN)算法

    文章目录 KNN 简介 KNN 三要素 距离度量 k值的选择 分类决策规则 KNN 实现 1,构造kd树 2,搜索最近邻 3,预测 用kd树完成最近邻搜索 K近邻算法(KNN)算法,是一种基本的分类与 ...

  8. 机器学习:kNN算法(一)—— 原理与代码实现(不调用库)

    一 理论基础 \(k\)近邻法是一种基本地分类与回归算法,属于判别模型.没有学习策略,不具备显式学习过程.本文主要讨论分类问题. 原理:给定一个训练数据集,对于新的输入实例,在训练数据集中找到与该实例 ...

  9. 【机器学习】KNN 算法原理与实现

    1.KNN算法概论 kNN算法的核心思想是:如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性.该方法在确定分类决策上只依据最邻近的 ...

最新文章

  1. 一文详解CMake编译工具与项目构建
  2. shell 工具_Kali Linux渗透工具【八】:系统命令注入漏洞工具 – Commix使用
  3. 树莓派2+无线网卡=钓鱼热点
  4. jq点击所有子元素_jQuery删除/清空指定元素下的所有子节点的方法
  5. c#多维数组的建立及操作 总结
  6. MongoDB基础使用
  7. python choose语句作用_理解闭包是如何与变量作用域相互影响的
  8. 数据结构题集c语言版题目与答案,数据结构题集(C语言版)答案 - 严蔚敏编著...
  9. Linux-CentOS7安装教程【附CentOS7镜像】
  10. matlab如何返回上一步
  11. 百病皆由痰作祟~一碗神奇的水?(生姜红糖水、姜糖水、中医)
  12. 【AI视野·今日CV 计算机视觉论文速览 第241期】Wed, 1 Dec 2021
  13. Excel中所有图片大小调整方法并将插入图片在单元格居中代码
  14. java lazy_在Java8中模拟Lazy
  15. 学生卡变成普通卡_15日前不审验 学生卡变成普通卡
  16. Cache架构以及X86ARM @Linux平台cache eviction功能测试
  17. 记一次微信小程序源码反解包
  18. 【Linux】在当前目录下创建文件夹
  19. 那些服务器平台支持nvme,最新网吧无盘服务器能用NVME的M.2  SSD吗?
  20. point-wise element-wise

热门文章

  1. 华为手机屏幕锁屏时间设置_华为手机如何更改设置屏幕的休眠时间
  2. 笔记本计算机是什么意思啊,笔记本独立显卡什么意思_独立显卡是什么
  3. win10电脑硬盘出现黄三角感叹号的解决方法
  4. 微信小程序拒绝授权后不弹出
  5. 如何用Redis实现分布式锁
  6. java 创建线程的方式
  7. scala学习day03
  8. Linux中的mkdir和touch命令
  9. W ndows7蓝屏0x00000024,Windows7系统蓝屏代码大全
  10. python 矩阵转置transpose