k近邻法基本知识简记

一、原理与概念

1、样本

k近邻法使用的样本数据集合,称作训练样本集,并且样本集中每个数据都存在标签,即样本集中每个数据与所属分类的对应关系已知。

2、原理

输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。

k近邻法的k指的就是这些最近邻的数量。

3、要点

K一般不大于20,最后,选择k个中出现次数最多的分类,作为新数据的分类

4、优点

精度高

对异常值不敏感

无数据输入假定

5、缺点

计算复杂度高

空间复杂度高

二、算法

1、输入输出

输入:训练数据集 实例特征向量x

输出:x所属的类y

2、步骤

(1)根据给定的距离度量, 在训练集T中找出与x最邻近的k个点, 涵盖这k个点的x的邻域记作Nk(x);
(2)在邻域中根据分类决策规则(如多数表决) 决定x的类别y:

3、指示函数

I为指示函数, 即当括号中等式成立时I为1否则I为0

4、最近邻算法

k=1,算法称为最近邻算法, 最近邻法将训练数据集中与x最邻近点的类作为x的类

三、模型

1、子空间

k近邻法中, 当训练集、 距离度量(如欧氏距离) 、 k值及分类决策规则(如多数表决) 确定后, 对于任何一个新的输入实例, 它所属的类唯一地确定。

这相当于根据上述要素将特征空间划分为一些子空间, 确定子空间里的每个点所属的类。

2、单元(cell)

特征空间中, 对每个训练实例点距离该点比其他点更近的所有点组成一个区域, 叫作单元。

每个训练实例点拥有一个单元, 所有训练实例点的单元构成对特征空间的一个划分。

最近邻法将实例xi的类yi作为其单元中所有点的类标记 。

这样, 每个单元的实例点的类别是确定的。

四、k值选择

1、选择较小的K值

“学 习”的近似误差(approximation error)会减小,但 “学习”的估计误差(estimation error) 会增大,

噪声敏感

K值的减小就意味着整体模型变得复杂,容易发生过 拟合.

2、选择较大的K值

减少学习的估计误差,但缺点是学习的近似误差会增大.

K值的增大 就意味着整体的模型变得简单.

3、k = N

无论输入实例是什么, 都将简单地预测它属于在训练实例中最
多的类。 这时, 模型过于简单, 完全忽略训练实例中的大量有用信息, 是不可取的。
在应用中, k值一般取一个比较小的数值。 通常采用交叉验证法来选取最优的k值

五、分类决策规则 多数表决

k近邻法中的分类决策规则往往是 多数表决规则(majority voting rule), 即由输入实例的k个邻近的训练实例中的多数类决定输入实例的类

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

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

相关文章

开源C代码之路:一、Gitee

开源c代码之路:一,Gitee 前言1、开源项目2、从哪里找?3、举个例子4、总结: 本系列回顾清单开源代码示例 前言 从开源开发的角度,由浅入深,一步步初探C语言编程的入门之路。 本篇讲解:Gitee 1…

极化定标未知数,反射对称条件下

把观测到的协方差矩阵都看作方程,则观测方程有16个,对角线四个实数,非对角线六个复数。 未知数有18个 f1 f2 d1 d2 d3 d4是12个 绝对幅度A 1个和绝对相位 θ在协方差中被消去了 协方差矩阵(反射对称性下)有5个未知数…

基于STM32的Wi-Fi无人机项目

引言 随着无人机技术的快速发展,基于微控制器的DIY无人机变得越来越流行。本项目将介绍如何使用STM32微控制器制作一架简单的Wi-Fi无人机。通过本项目,您将了解到无人机的基本组成部分,如何进行硬件连接,代码编写,以及…

【附源码】基于环信鸿蒙IM SDK实现一个聊天Demo

项目背景 本项目基于环信IM 鸿蒙SDK 打造的鸿蒙IM Demo,完全适配HarmonyOS NEXT系统,实现了发送消息,添加好友等基础功能。代码开源,功能简洁,如果您有类似开发需求可以参考。 源码地址:https://github.c…

MicroSIP软电话使用

MicroSIP - 基于 PJSIP 协议栈的开源便携式 SIP 软电话 适用于 Windows 操作系统。 它允许进行高质量的 VoIP 通话(个人对个人或在线 普通电话)。来自 SIP 提供商的云 您可以选择最适合您的,注册帐户并在 MicroSIP 中使用它。 您将获得免费的…

突破空间限制!从2D到3D:北大等开源Lift3D,助力精准具身智能操作!

文章链接:https://arxiv.org/pdf/2411.18623 项目链接:https://lift3d-web.github.io/ 亮点直击 提出了Lift3D,通过系统地提升隐式和显式的3D机器人表示,提升2D基础模型,构建一个3D操作策略。 对于隐式3D机器人表示&a…

【C++笔记】二叉搜索树

前言 各位读者朋友们大家好!上期我们讲完了面向对象编程三大属性之一的多态,这一期我们再次开始数据结构二叉搜索树的讲解。 目录 前言一. 二叉搜索树的概念二. 二叉搜索树的性能分析三. 二叉搜索树的插入四. 二叉搜索树的查找五. 二叉搜索树的删除六.…

使用历史索引监控 Elasticsearch 索引生命周期管理

作者:来自 Elastic Stef Nestor 大家好!在之前的一篇博客中,我们概述了常见的索引生命周期管理 (index lifecycle management - ILM) 问题及其解决方案。此后,我们已将这些常见场景添加到我们的 Elasticsearch 文档中,…

使用伪装IP地址和MAC地址进行Nmap扫描

使用伪装IP地址和MAC地址进行Nmap扫描 在某些网络设置中,攻击者可以使用伪装的IP地址甚至伪装的MAC地址进行系统扫描。这种扫描方式只有在可以保证捕获响应的情况下才有意义。如果从某个随机的网络尝试使用伪装的IP地址进行扫描,很可能无法接收到任何响…

Java基础之GUI:探索图形化界面编程的魅力

一、引言 Java 的图形用户界面(GUI)编程为开发者提供了丰富的工具和组件,使得创建直观、交互性强的应用程序变得更加容易。本文将深入介绍 Java 基础中的 GUI,包括其概念、组件、布局管理器以及事件处理等方面的知识。 Java 的图…

Svn如何切换删除账号

记录Svn清除切换账号 1.首先打开小乌龟的设置如下图 打开设置后单击已保存数据,然后选择清除 接上图选择清除后,就可以打勾选择清除已保存的账号,我们再次检出的就可以切换账号了 👉总结 本次记录Svn清除切换账号 如能帮助到你…

机器学习分子动力学

“AI for Science”时代,机器学习分子动力学机器学习第一性原理专题!https://mp.weixin.qq.com/s/icdBcJbKhOqtAymEpZds2A 《基于机器学习的分子动力学》 1. 第一天理论内容 a) 诺贝尔奖的AI元年 i. AI与 SCIENCE的交叉: b) 科学研究的四…

DVWA 靶场 SQL 注入报错 Illegal mix of collations for operation ‘UNION‘ 的解决方案

在 dvwa 靶场进行联合 SQL 注入时,遇到报错 Illegal mix of collations for operation UNION报错如下图: 解决办法: 找到文件MySQL.php 大致位置在dvwaincludesDBMS 目录下 使用编辑器打开 检索$create_db 第一个就是 在{$_DVWA[ ‘db_d…

多线程设计模式

同步模式-保护性暂停( Guarded Suspension) 定义 保护性暂停主要是解决什么问题?用在一个线程等待另一个线程的执行结果(交互结果) 要点: 有一个结果需要从一个线程传递到另一个线程,让他们关联同一个 GuardedObject如果有结果不断从一个线程到另一个线程那么可以使用…

UE4外挂实现分析-PC端-附源码

UE4外挂实现分析-PC端 游戏分析 分析工具: Cheat Engine 7.5 x64dbg IDA Pro 参考文章: UE4逆向笔记之GWORLD GName GameInstance - 小透明‘s Blog 【项目源码下载】https://download.csdn.net/download/Runnymmede/90079718 本次分析的游戏使用UE4.2…

微信小程序全屏显示地图

微信小程序在界面上显示地图&#xff0c;只需要用map标签 <map longitude"经度度数" latitude"纬度度数"></map>例如北京的经纬度为&#xff1a;116.407004,39.904595 <map class"bgMap" longitude"116.407004" lati…

解析RISCV fence指令

背景 由于RISCV采用了弱内存模型RVWMO&#xff0c;对内存访问的约束较少&#xff0c;而在现代的处理器设计中&#xff0c;因为流水线&#xff0c;乱序执行&#xff0c;store buffer等的存在&#xff0c;对IO, memory的访问往往是乱序的。 软件在特定的场景下&#xff0c;需要硬…

Scala的条件匹配

条件匹配 在 Scala 中&#xff0c;条件匹配主要通过match表达式来实现&#xff0c;它类似于其他语言中的switch语句&#xff0c;但功能更强。 基本语法&#xff1a;match表达式通常与case关键字一起使用。语法格式如下&#xff1a; 输入一段数字&#xff0c;判断属于那个范围…

Microi吾码|.NET、VUE快速搭建项目,低代码便捷开发教程

Microi吾码&#xff5c;VUE快速搭建项目&#xff0c;低代码便捷开发教程 一、摘要二、Microi吾码介绍2.1 功能介绍2.2 团队介绍2.3 上线项目案例 三、VUE中使用Microi吾码3.1 前期了解3.2 创建第一个低代码应用3.3 接口API使用说明3.4 引擎界面可视化配置&#xff0c;生成API3.…

Linux下Docker的安装(Centos7)

1、Centos7安装Docker 1.1 确定Centos版本是否是7及以上 cat /etc/redhat-release 1.2 卸载旧版本 sudo dnf remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine 1.3 yum安装gc…