8_分类算法-k近邻算法(KNN)

news2024/11/20 15:41:33

文章目录

  • 1 KNN算法
    • 1.1 KNN算法原理
    • 1.2 KNN过程
    • 1.3 KNN三要素
    • 1.4 KNN分类预测规则
    • 1.5 KNN回归预测规则
    • 1.6 KNN算法实现方式(重点)
    • 1.7 k近邻算法优缺点
  • 2 KD-Tree
    • 2.1 KD Tree构建方式
    • 2.2 KD Tree查找最近邻
    • 2.3 KNN参数说明

1 KNN算法

  • 定义:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
  • 来源:KNN算法最早是由Cover和Hart提出的一种分类算法

1.1 KNN算法原理

  • K近邻(K-nearst neighbors,KNN)是一种基本的机器学习算法,所谓k近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。比如:判断一个人的人品,只需要观察与他来往最密切的几个人的人品好坏就可以得出,即“近朱者赤,近墨者黑";KNN算法既可以应用于分类应用中,也可以应用在回归应用中。
  • KNN在做回归和分类的主要区别在于最后做预测的时候的决策方式不同。KNN在分类预测时,一般采用多数表决法;而在做回归预测时,一般采用平均值法

1.2 KNN过程

1、从训练集合中获取K个离待预测样本距离最近的样本数据;
2、根据获取得到的K个样本数据来预测当前待预测样本的目标属性值。

1.3 KNN三要素

在KNN算法中,非常重要的主要是三个因素:

  • K值的选择:对于K值的选择,一般根据样本分布选择一个较小的值,然后通过交叉验证来选择一个比较合适的最终值;当选择比较小的K值的时候,表示使用较小领域中的样本进行预测,训练误差会减小,但是会导致模型变得复杂,容易过拟合;当选择较大的K值的时候,表示使用较大领域中的样本进行预测,训练误差会增大,同时会使模型变得简单,容易导致欠拟合;
  • 距离的度量:一般使用欧氏距离(欧几里得距离);
  • 决策规则:在分类模型中,主要使用多数表决法或者加权多数表决法;在回归模型中,主要使用平均值法或者加权平均值法。

1.4 KNN分类预测规则

在KNN分类应用中,一般采用多数表决法或者加权多数表决法。

  • 多数表决法:每个邻近样本的权重是一样的,也就是说最终预测的结果为出现类别最多的那个类,比如下图中蓝色圆圈的最终类别为红色;
  • 加权多数表决法:每个邻近样本的权重是不一样的,一般情况下采用权重和距离成反比的方式来计算,也就是说最终预测结果是出现权重最大的那个类别;比如下图中,假设三个红色点到待预测样本点的距离均为2,两个黄色点到待预测样本点距离为1,那么蓝色圆圈的最终类别为黄色。

在这里插入图片描述

1.5 KNN回归预测规则

在KNN回归应用中,一般采用平均值法或者加权平均值法。

  • 平均值法:每个邻近样本的权重是一样的,也就是说最终预测的结果为所有邻近样本的目标属性值的均值;比如上图中,蓝色圆圈的最终预测值为:2.6;
  • 加权平均值法:每个邻近样本的权重是不一样的,一般情况下采用权重和距离成反比的方式来计算,也就是说在计算均值的时候进行加权操作;比如上图中,假设上面三个点到待预测样本点的距离均为2,下面两个点到待预测样本点距离为1,那么蓝色圆圈的最终预测值为:2.43,(权重分别为:1/7和2/7)

1.6 KNN算法实现方式(重点)

KNN算法的重点在于找出K个最邻近的点,主要方式有以下几种:

  • 蛮力实现(brute):计算预测样本到所有训练集样本的距离,然后选择最小的k个距离即可得到K个最邻近点。缺点在于当特征数比较多、样本数比较多的时候,算法的执行效率比较低;
  • KD树(kd_tree):KD树算法中,首先是对训练数据进行建模,构建KD树,然后再根据建好的模型来获取邻近样本数据。

除此之外,还有一些从KD-Tree修改后的求解最邻近点的算法,比如:Ball Tree BBF Tree,MVP Tree等。

1.7 k近邻算法优缺点

优点:简单,易于理解,易于实现,无需估计参数,无需训练

缺点:

  • 懒惰算法,对测试样本分类时的计算量大,内存开销大
  • 必须指定K值,K值选择不当则分类精度不能保证

使用场景:小数据场景,几千~几万样本,具体场景具体业务去测试

2 KD-Tree

  • KD Tree是KNN算法中用于计算最近邻的快速、便捷构建方式。
  • 当样本数据量少的时候,我们可以使用brute这种暴力的方式进行求解最近邻,即计算到所有样本的距离。但是当样本量比较大的时候,直接计算所有样本的距离,工作量有点大,所以在这种情况下,我们可以使用kd tree来快速的计算。

2.1 KD Tree构建方式

KD树采用从m个样本的n维特征中,分别计算n个特征取值的方差,用方差最大的第k维特征nk作为根节点。对于这个特征,选择取值的中位数nkv作为样本的划分点,对于小于该值的样本划分到左子树,对于大于等于该值的样本划分到右子树,对左右子树采用同样的方式找方差最大的特征作为根节点,递归即可产生KD树。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 KD Tree查找最近邻

当我们生成KD树以后,就可以去预测测试集里面的样本目标点了。

对于一个目标点,我们首先在KD树里面找到包含目标点的叶子节点。

以目标点为圆心,以目标点到叶子节点样本实例的距离为半径,得到一个超球体,最近邻的点一定在这个超球体内部。

然后返回叶子节点的父节点,检查另一个子节点包含的超矩形体是否和超球体相交,如果相交就到这个子节点寻找是否有更加近的近邻,有的话就更新最近邻。如果不相交那就简单了,我们直接返回父节点的父节点,在另一个子树继续搜索最近邻。当回溯到根节点时,算法结束,此时保存的最近邻节点就是最终的最近邻。
在这里插入图片描述
在这里插入图片描述

2.3 KNN参数说明

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/919043.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

fineReport10问题笔记

1. word导出相关问题 1.1 导出文字为图片 fineReport技术文档 1)文本控制 选中单元格,点击「单元格属性>样式>对齐」,文本控制设置有四种,分别为「自动换行、单行显示、单行显示(调整字体)、多行显…

AA实验是什么?

AA实验是什么:AA实验是在AB实验正式上线前做的分流均匀性检验,这个时候还没有正式上实验策略,只是为了检验两组的分流是否均匀先空跑一段时间。 AA实验的准备工作:这个时候要进行的工作是检查 两组分流是否均匀 、埋点是否正常 。…

精益求精:通付盾安卓应用加固升级,为移动安全保驾护航!

在如今竞争激烈的移动应用领域,保障应用资源的安全性成为刻不容缓的任务。最近,通付盾针对资源加密方案进行了全面升级,大幅增强了其兼容性,实现了更全面的资源文件类型保护。这次升级为移动应用的安全性和稳定性迈出了坚实的一步…

driver‘s license exam 2

机动车科目二内容 driver‘s license exam 1_spencer_tseng的博客-CSDN博客 driver‘s license exam 2_spencer_tseng的博客-CSDN博客 driver‘s license exam 3_spencer_tseng的博客-CSDN博客 driver‘s license exam 4_spencer_tseng的博客-CSDN博客 car indicator light…

跨平台图表:ChartDirector for .NET 7.1 Crack

什么是新的 ChartDirector for .NET 7.0 支持跨平台使用,但仅限于 .NET 6。这是因为在 .NET 7 中,Microsoft 停止了用于非 Windows 使用的 .NET 图形库 System.Drawing.Common。由于 ChartDirector for .NET 7.0 依赖于该库,因此它不再支持 .…

物通博联嵌入式数据采集网关采集传感器的数据上传到云端

在当今的物联网(IoT)时代,各种传感器广泛应用于各种工业领域。传感器数据采集是实现自动化生产的基础,可以为企业决策提供科学的数据支持,通过各类智能传感器采集传输终端,将采集的传感器数据实时传输到设备…

2048. 下一个更大的数值平衡数;1292. 元素和小于等于阈值的正方形的最大边长;2707. 字符串中的额外字符

2048. 下一个更大的数值平衡数 核心思想:枚举直接从n1开始枚举它是不是平衡数即可。 1292. 元素和小于等于阈值的正方形的最大边长 核心思想:枚举正方形的左上角优化。优化部分有两部分,第一部分是计算面积的优化,预先处理好g,让…

LVS集群 (NET模式搭建)

目录 一、集群概述 一、负载均衡技术类型 二、负载均衡实现方式 二、LVS集群结构 一、三层结构 二、架构对象 三、LVS工作模式 四、LVS负载均衡算法 一、静态负载均衡 二、动态负载均衡 五、ipvsadm命令详解 六、搭建实验流程 一、首先打开三台虚拟机 二、…

SpreadsheetGear 2017 2023 for .NET Crack

SpreadsheetGear 2017 & 2023 for .NET Crack Spreadsheet Gear for.NET被描述为允许用户和开发人员使用iOS、Android、Mac OS、Linux,最后是UWP,以利用可扩展的Excel报告以及与图表API兼容的全面Excel,以及为用户和开发人员提供的最快、…

Rancher证书更新

一、环境 主机名 IP地址 操作系统 rancher版本 K8s-Master 192.168.10.236 Centos 7 2.5.9 二、更新证书 1、查看当前证书到期时间 2、进行证书轮换 [rootK8s-Master ~]# docker ps |grep rancher/rancher d581da2b7c4e rancher/rancher:v2.5.9 …

appium2.0+ 单点触控和多点触控新的解决方案

在 appium2.0 之前,在移动端设备上的触屏操作,单手指触屏和多手指触屏分别是由 TouchAction 类,Multiaction 类实现的。 在 appium2.0 之后,这 2 个方法将会被舍弃。 "[Deprecated] TouchAction action is deprecated. Ple…

【25考研】- 整体规划及高数一起步

【25考研】- 整体规划及高数一起步 一、整体规划二、专业课870计算机应用基础参考网上考研学长学姐: 三、高数一典型题目、易错点及常用结论(一)典型题目(二)易错点(三)常用结论1.arcsinxarccos…

Python爬虫实战案例——第二例

某某美剧剧集下载(从搜索片名开始) 本篇文章主要是为大家提供某些电影网站的较常规的下载电影的分析思路与代码思路(通过爬虫下载电影),我们会从搜索某部影片的关键字开始直到成功下载某一部电影。 地址:aHR0cHM6Ly93d3cuOTltZWlqdXR0LmNvbS9pbmRleC5od…

为什么选择网络安全?为什么说网络安全是IT行业最后的红利?

一、为什么选择网络安全? 这几年随着我国《国家网络空间安全战略》《网络安全法》《网络安全等级保护2.0》等一系列政策/法规/标准的持续落地,网络安全行业地位、薪资随之水涨船高。 未来3-5年,是安全行业的黄金发展期,提前踏入…

60.每日一练:回文数(力扣)

目录 问题描述 代码解决以及思想 解法(一) 知识点 解法(二) 问题描述 代码解决以及思想 解法(一) class Solution { public:bool isPalindrome(int x) {string arr to_string(x); // 将整数转换为…

IDEA常用插件之代码扫描SonarLint

文章目录 SonarLint 查找隐藏的bug下载安装插件扫描代码查看结果 SonarLint 查找隐藏的bug 下载安装插件 扫描代码 项目右键 -> Analyze -> Analyze with SonarLint 查看结果 扫描完成结果在下面可以直接查看到报告

第2篇:ESP32 helloword第一个程序示范点亮板载LED

1.选择ESP32开发板 2.寻找串口号,win10自动安装驱动 手动安装驱动参考: 百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可…

typora

图像 偏好设置 图床 picgosmms图床 YAML typora-copy-images-to: upload 在将文件复制到本地文件夹后,再上传 Typora_PicGo_SMMS图床配置 第一步 在偏好设置-图像中 1.设置为上传图片 2.下载picogo并设置路径 第二步 获取https://sm.ms/home/apitoken的a…

Django会话技术

文章目录 Cookie实践运行结果 CSRF防止CSRF Session实践 Cookie 理论上,一个用户的所有请求燥作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆,而web应用程序是使用HTTP协议传输数据的。HTT…

Navicat for Mysql 显示 emoji 表情符号乱码问题

系统环境: 操作系统:MAC OS 10.11.6 MySQL:Server version: 5.6.21 MySQL Community Server (GPL) Navicat for MySQL: version 9.3.1 - standard 1、问题发现 在客户端执行用户注册,用户名支持 emoji 表情,注册完成后…