【机器学习】k最近邻分类

📝本文介绍
本文为作者阅读鸢尾花书籍以及一些其他资料的k最近邻分类后,所作笔记

👋作者简介:一个正在积极探索的本科生
📱联系方式:943641266(QQ)
🚪Github地址:https://github.com/sankexilianhua
🔑Gitee地址:https://gitee.com/Java_Ryson
由于本人的知识所限,如果文章有问题,欢迎大家联系并指出,博主会在第一时间修正。

文章目录

  • 📕1. 原理
  • 📘2. 流程
  • 📙3. 分类
    • 📖3.1 二分类
    • 📖3.2 三分类
    • 📖3.3 k值的影响
  • 📗4. k-nn变种
    • 📖4.1 对投票权重的处理
    • 📖4.2 最近质心分类器(NCC)

📕1. 原理

K 最近邻 (KNN) 算法是一种非参数化的监督学习分类器,它利用邻近度来对单个数据点的分组进行分类或预测。 它是当今机器学习中使用的最广泛且最简便的分类与回归分类器之一。 k近邻算法,也称为 KNN 或 k-NN,是一种非参数、有监督的学习分类器,KNN 使用邻近度对单个数据点的分组进行分类或预测。
优点:

  • 简单
  • 不需要训练过程
  • 对非线性分类问题表现良好

缺点:

  • 需要大量存储训练集
  • 预测速度较慢
  • 对高维数据容易出现维数灾难

核心思想:小范围投票,少数服从多数

📘2. 流程

给定样本数据X( x ( 1 ) , x ( 2 ) , x ( 3 ) , . . . x^{(1)},x^{(2)},x^{(3)},... x(1),x(2),x(3),...,分别对应已知标签 y ( 1 ) , y ( 2 ) , y ( 3 ) , . . . y^{(1)},y^{(2)},y^{(3)},... y(1),y(2),y(3),....查询点q标签未知,待预测分类。

  • 计算样本数据X任意一点x和查询点q的距离
  • 找X中距离查询点q最近的k个样本,即k个”近邻“
  • 根据k个邻居已知标签,直接投票或加权投票;k个邻居出现数量最多的标签即为查询点q预测分类结果

📙3. 分类

📖3.1 二分类

有一组数据集两个特征( x 1 , x 2 x_1,x_2 x1x2)(特征显然也可以不止两个),有两类标签, c 1 , c 2 c_1,c_2 c1,c2,c1表示红色,c2表示蓝色。在其中随便查找一个点q,这个点属于哪一类?

显然,这里的任一点x和q的距离可以看作是两点之间的距离。k就是指定几个近邻(按距离远近来排,看要取几个点)。
在这里插入图片描述
这里就可以看出,采用k=4的话,选择4个最近的点,统计他们的标签,最后少数服从多数,可以得到q的一个归属。

这里要注意:k是一个超参数,对其设定的不同,会影响到最后对于q归属的判定。

sklearn.neighbors.KNeighborsClassifier 为 Scikit-learn工具包k-NN分类算法函数默认的近邻数量n_neighbors为5默认距离量metric为欧氏距离常用的methods为fit(x,y):拟合样本数据predit(q):预测查询点q的分类

📖3.2 三分类

三分类,实际上是有三类标签,其他的都与二分类差不多。
在这里插入图片描述
图中蓝色的线称为决策边界

  • 若决策边界为直线,平面,或超平面,那么这个分类问题是线性的。否则,该问题是非线性的。

  • 如果决策边界可以使用简单或复杂的函数来表示,那么该模型称为参数模型。类似k-NN这样的学习算法得到的决策边界为非参数模型

泛化能力:指机器学习算法对全新样本的适应能力。适应能力越强,泛化能力越强。

k-NN基于训练数据,更准确地说是把训练数据以一定的形式存储起来完成学习任务

📖3.3 k值的影响

k值为用户输入值(即:超参数),其会影响到决策边界的形成。

  • 较小的k值能准确捕捉训练数据的分类模式;但,容易受到噪声的影响、
  • 较大的k值能够抑制噪声的影响;但分类界限不明显

为什么会影响?

  在KNN中,不论要分多少个类,实际上决定计算次数的还是超参数K,它决定了取四周最近的多少个点来确定,那么一旦范围扩大,就有可能包含更多的点,对分类的结果就会有所影响。影响分类的结果,自然而然就会影响到决策边界的形成。

📗4. k-nn变种

在原本的knn中,所有点的投票权重都是相同的(即等权重投票)。但是,很多knn也可以使用加权投票的方式,有时会更加有效。

📖4.1 对投票权重的处理

距离查询点越近的近邻,投票权重越高;越近的近邻,投票权重越低。

实际sklearn库中可以使用:sklearn.neighbors.KNeighborsClassifier 来实现,使用其来设定投票权重

此外,也可以将近邻投票权归一化处理:

w i = m a x ( d N N ) − d i m a x ( d N N ) − m i n ( d N N ) w_i={max(d_{NN})-d_i \over max(d_{NN})-min(d_{NN})} wi=max(dNN)min(dNN)max(dNN)di

这样,距离随着距离增大,权重逐渐减小。

归一化:
  
将一列数据变化到某个固定区间(范围)中,通常,这个区间是[0, 1] 或者(-1,1)之间的小数。主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速。

📖4.2 最近质心分类器(NCC)

数据质心

μ k = 1 c o u n t ( C k ) i = C k Σ i = C k X ( i ) {μ_k = {1 \over count(C_k)_{i=C_k}}}Σ_{i=C_k}X^{(i)} μk=count(Ck)i=Ck1Σi=CkX(i)

也就是每一组向量的相同位置的元素,相加之后取平均值。所以实际上的 μ k = { E ( x 1 ) , E ( x 2 ) , . . . } {μ_k=\{E(x_1),E(x_2),...\}} μk={E(x1),E(x2),...}

最质心分类器原理

先求解得到不同类别样本数据簇质心位置 μ m μ_m μm查询点q距离哪个分类质心越近,其预测分类则被划定为这一类

最质心分类器,不需要设定最近邻数量k

python工具包完成最近质心分类的函数为:sklearn.neighbors.NearestCentroid

同时,可以发现,多个类别之间的分类线,其实就是不同质心之间的中垂线。

在这里插入图片描述

收缩阈值

sklearn.neighbors.NearestCentroid函数同时也提供收缩阈值,以获得最近收缩质心。

即:随着收缩阈值的增大,各类数据的质心会向着数据总质心靠近,那么分类边界也会随之不断变化
在这里插入图片描述

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

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

相关文章

《深度学习》bert自然语言处理框架

目录 一,关于bert框架 1、什么是bert 2、模型结构 自注意力机制: 3、预训练任务 4、双向性 5、微调(Fine-tuning) 6、表现与影响 二、Transformer 1、传统RNN网络计算时存在的问题 1)串联 2)并行…

开源 - Ideal库 - 常用时间转换扩展方法(一)

从事软件开发这么多年,平时也积累了一些方便自己快速开发的帮助类,一直在想着以什么方式分享出来,因此有了这个系列文章,后面我将以《开源-Ideal库》系列文章分享一些我认为比较成熟、比较方便、比较好的代码,如果感觉…

网络安全漏洞管理十大度量指标

前言 当前,网络安全漏洞所带来的风险及产生的后果,影响到网络空间乃至现实世界的方方面面,通信、金融、能源、电力、铁路、医院、水务、航空、制造业等行业各类勒索、数据泄露、供应链、钓鱼等网络安全攻击事件层出不穷。因此,加…

R语言*号标识显著性差异判断组间差异是否具有统计意义

前言 该R代码用于对Iris数据集进行多组比较分析,探讨不同鸢尾花品种在不同测量变量(花萼和花瓣长度与宽度)上的显著性差异。通过将数据转换为长格式,并利用ANOVA和Tukey检验,代码生成了不同品种间的显著性标记&#x…

Web前端PC端开发者工具详细介绍(约10000字保姆级讲解)

1.Elements部分 首先按下F12键即可进入开发者工具页面,以CSDN博客页面为例,如下可以看到右侧是该页面所对应的前端代码。 在Elements部分的Styles模块下可以看页面的各个类别的样式等。 (1)点击.cls可以开启动态修改元素的class&a…

SQL Server 日志记录

SQL Server是一个关系数据库管理系统(RDBMS),旨在有效地存储、组织、检索和操作大量结构化数据。SQL Server日志是监控数据库活动、排查问题和确保数据一致性的基础,这些日志记录了SQL Server实例中发生的事件的时间顺序。它们充当…

Qt QCustomplot 在采集信号领域的应用

文章目录 一、常用的几种开源库:1、QCustomPlot:2、QChart:3、Qwt:QCustomplot 在采集信号领域的应用1、应用实例时域分析频谱分析2.数据筛选和处理其他参考自然界中的物理过程、传感器和传感器网络、电路和电子设备、通信系统等都是模拟信号的来源。通过可视化模拟信号,可以…

【数据结构】堆和二叉树(2)

文章目录 前言一、建堆和堆排序1.堆排序 二、二叉树链式结构的实现1.二叉树的遍历 三、链式二叉树的功能函数1.二叉树结点个数2.二叉树叶子结点个数3.二叉树的高度4.二叉树第k层结点个数5. 二叉树查找值为x的结点6.二叉树销毁 总结 前言 接着上一篇博客,我们继续分…

PDF多功能工具箱 PDF Shaper v14.6

如今对PDF处理的软件很多都是只是单一的功能。PDF Shaper给你完全不同的体验,因为PDF Shaper是一款免费的PDF工具集合的软件。有了PDF Shaper,你以后再也不用下载其他处理PDF的软件了。PDF Shaper的功能有:合并,分割,加…

猫用空气净化器哪个牌子好?求除毛好、噪音小的宠物空气净化器!

换毛季家里孩子不省心,疯狂掉落的猫毛和空气中乱飞的浮毛可把我折磨死了。每天下班都要抽出时间来清理,不然这个家就不能要了。猫毛靠我自己可以打扫,浮毛还得借助宠物空气净化器这种专业工具。所以我最近着手做功课,打算入手一台…

Halcon 矫正图像 图像矫正

目录 原图 矫正后的图像 ​编辑 示例代码 原图 矫正后的图像 示例代码 找ROI部分代码暂无法分享 HomMat2DInvert : []Row_T : []Col_T : []region_features (ROI, rectangularity, Value)if (Value > RectY)HomMat2DInvert : []smallest_rectangle1 (ROI, Row_T, Col…

Spring Boot 3.x 中使用 SpringDoc 2 / Swagger3(详解)

大家好,我是码哥,《Redis 高手心法》作者。 SpringBoot 已经成为 Java 开发的首选框架,今天码哥跟大家聊一聊 Spring Boot3 如何与 Swagger3 集成打造一个牛逼轰轰的接口文档。 为什么要用 Swagger 唐二婷:我最讨厌两件事&#xf…

Java中四种引用类型【快速理解】图文

一、强引用 我们正常手动new出来的对象都是强应用,不对他进行别的操作的时候它是不会进行垃圾回收的。除非将它的引用断开,此时调用垃圾回收器才会将它回收。 二、软引用 三、虚引用 虚引用的意思就是,引用关系是虚的,如果创造出…

C语言-详细讲解-洛谷P1075 [NOIP2012 普及组] 质因数分解

1.题目要求 2.题目解析 解题点在于如何分解质因数&#xff0c;这里介绍一下短除法。&#xff08;虽然解决这个问题可以不用短除法&#xff09; 3.代码实现 贴一下自己的代码 #include <stdio.h> #include <math.h>int main() {int n, i;scanf("%d",…

Kubernetes Extended Resource 扩展资源使用简介

Kubernetes 除了提供基于 CPU 和内存的传统计算资源调度外&#xff0c;还支持自定义的 Extended Resource 扩展资源&#xff0c;以便调度和管理其它各种类型的资源。 Extended Resource Extended Resource 扩展资源的创建和使用过程如下图所示&#xff1a; 定义资源&#xff…

javaweb基于springboot社区养老服务管理系统

简介&#xff1a; 系统整体设计分为三个角色&#xff0c;分别是社区员工、社区老人、社区系统管理员。在功能模块上分为三大块&#xff1a;人员管理模块、健康管理模块和活动管理模块。 人员管理模块能够对社区系统管理员信息、社区员工信息、社区老人信息进行管理。健康管理模…

鸿蒙应用App测试-专项测试(DevEco Testing)

注意&#xff1a;大家记得先学通用测试在学专项测试 鸿蒙应用App测试-通用测试-CSDN博客 注意&#xff1a;博主有个鸿蒙专栏&#xff0c;里面从上到下有关于鸿蒙next的教学文档&#xff0c;大家感兴趣可以学习下 如果大家觉得博主文章写的好的话&#xff0c;可以点下关注&am…

Jenkins应用详解(Detailed Explanation of Jenkins Application)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

《大道平渊》· 廿肆 —— 欲望应当内敛,而非张扬。

《大道平渊》 廿肆 什么是欲望&#xff1f;哲学家德勒兹认为&#xff0c;欲望没有客体。 其本身&#xff0c;就是一种渴望维持自身的运动。 欲望是由生物的本性产生的、想达到某种目的的要求&#xff0c;无善恶之分。 . 那么欲望的本身是什么&#xff1f; 是一种情绪和思想…

支持向量机相关证明 解的稀疏性

主要涉及拉格朗日乘子法&#xff0c;对偶问题求解