【海量数据挖掘/数据分析】 之 K-NN 分类(K-NN、K-NN实例、准确率评估方法、准确率、召回率)

news2024/11/16 1:27:09

【海量数据挖掘/数据分析】 之 K-NN 分类(K-NN、K-NN实例、准确率评估方法、准确率、召回率)

目录

【海量数据挖掘/数据分析】 之 K-NN 分类(K-NN、K-NN实例、准确率评估方法、准确率、召回率)

一、 K-NN 简介

二、K-NN 分类

三、K-NN 分类实例

1、1-NN 分类 : 此时 A 类别有 1 个 , B 类别有 0 个 , 红色点被分为 A 类别 ;

 2、3-NN 分类 : 此时 A 类别有  1 个 ,  B 类别有 2 个 , 红色点被分为 B 类别 ;

 3、9-NN 分类 : 此时 A 类别有 5 个 , B 类别有 2 个 , 红色点被分为 A 类别 ;​编辑

4、15-NN 分类 : 此时 A 类别有 5 个 ,  B 类别有 9 个 , 红色点被分为 B 类别 ;​编辑

6、 K-NN 分类 准确度 : 数据量越大 , 准确度越高 ; K-NN 的思想是与周围的大多数样本保持一致 ;

四、K-NN 分类 准确性评估方法

1、保持法 :

2、k-交叉确认法

五、 分类 判定 二维表

六、K-NN 分类结果评价指标

1、准确率

2、 召回率

3、准确率与召回率关联

4、准确率 与 召回率 综合考虑


一、 K-NN 简介

① 全称 : K-NN 全称是 K-Nearest Neighbors , 即 K 最近邻 算法 ;

② 定义 : 给定查询点 p  , 找出离 p  最近的 K 个点 , 找出所有的 qk​ 点 , qk​ 点的要求是 点到 p  的距离 小于其第 k 个邻居的距离 ;

③ 理解方式 : 以  p 点为圆心画圆 , 数一下圆内 , 和圆的边上的点是由有 K 个 , 如果个数不足 K 个 , 扩大半径 , 直到圆边上和园内的点的个数大于等于 K 为止 ;

④ 图示 : 红色的点是 p 点 , 绿色的点是 p 点的 9 个最近的邻居 , 圆上的绿点是第 9 个最近的邻居 ;

二、K-NN 分类

① 已知条件 : 假设给定查询点 p , 已经直到其 K 个最近邻居 ;

② 分类内容 : K-NN 的目的是为了给查询点 p 进行分类 ;

③ 数据集样本抽象成点 : 将训练集的数据样本 , 当做 n 维空间中的的点 ;

④ 预测分类 : 给定一个未知样本 p , 要给该位置样本分类 , 首先以该未知样本作为查询点 , 以 p 点为中心 , 找到该样本的点在 n 维空间中的 K 个近邻 , 将这 K 个近邻按照某个属性的值进行分组 , 该未知样本 p 被分到样本最多的那个组 ;


三、K-NN 分类实例

为下面的红色点进行分类 : 有两种分类 , 绿色点的分类是 A , 和 紫色点的分类是 B , 为红点进行分类 ;

1、1-NN 分类 : 此时 A 类别有 1 个 , B 类别有 0 个 , 红色点被分为 A 类别 ;

 2、3-NN 分类 : 此时 A 类别有  1 个B 类别有 2 个 , 红色点被分为 B 类别 ;

 3、9-NN 分类 : 此时 A 类别有 5 个 , B 类别有 2 个 , 红色点被分为 A 类别 ;

4、15-NN 分类 : 此时 A 类别有 5 个 B 类别有 9 个 , 红色点被分为 B 类别 ;

6、 K-NN 分类 准确度 : 数据量越大 , 准确度越高 ; K-NN 的思想是与周围的大多数样本保持一致 ;

 

四、K-NN 分类 准确性评估方法

K-NN 分类准确性评估方法 :

  1. 保持法
  2. k-交叉确认法

这两种方法是常用的 K-NN 评估分类准确率的方法

1、保持法 :

① 训练集测试集划分 : 将数据集样本随机分成两个独立的数据集 , 分别是用于训练学习的训练集 , 和用于验证测试的测试集 ;

② 训练集测试集 样本比例 : 数据集划分比例 , 通常是 , 训练集 2  / 3 ​ , 测试集 1/ 3​ ;

③ 随机划分 : 划分一定要保证随机性 , 划分时不能有任何偏好 ;

2 . 随机选样法 : 执行 K 次保持法 , 得到 K 个准确率 , 总体的准确率取这 K 次准确率的平均值 ;

3 . 随机选样法本质 : 保持法的另一种形式 , 相当于使用多次保持法 ;
 

2、k-交叉确认法

1 . k-交叉确认法 : 首先要划分数据集 , 然后进行 k 次训练测试 , 最后计算出准确率 ;

2 . 划分数据集 : 将数据集样本划分成 k 个独立的子集 , 分别是  {S1​,S2​,⋯,Sk​} , 每个子集的样本个数尽量相同 ;

3 . 训练测试 :

① 训练测试次数 : 训练 k 次 , 测试 k 次 , 每次训练都要对应一次测试 ;

② 训练测试过程 : 第 i 次训练 , 使用 Si​ 作为测试集 , 其余 (k−1) 个子集作为训练集 ;

4 . 训练测试 示例 : 训练 k 次 ;

第 1 次训练 , 使用  S1​ 作为测试集 , 其余 (k−1) 个子集作为训练集 ;
第  2 次训练 , 使用  S2​ 作为测试集 , 其余 (k−1) 个子集作为训练集 ;
 ⋮
第 k 次训练 , 使用  Sk​ 作为测试集 , 其余  (k−1) 个子集作为训练集 ;

5 . 准确率结果 :

① 单次训练测试结果 : k 次测试训练 , 每次使用  Si​ 作为测试集 , 测试的子集中有分类正确的 , 有分类错误的 ;

② 总体准确率 : k 次测试后 , 相当于将整个数据集的子集 {S1​,S2​,⋯,Sk​} 都当做测试集测试了一遍 , 将整体的数据集的样本分类正确的样本个数 Y , 除以整体的样本个数 T , 即可得到 k-交叉确认 准确率结果 Y/ T ​ ;
 

五、 分类 判定 二维表

1 . 分类 判定二维表 : 这里引入二维表 , 这个二维表表示 人 和 机器 , 对样本的判定情况 ;

 

2 . 样本分类正确性分析 :

① 样本分类的三种认知 : 样本实际的分类 , 人认为的分类 , 机器认为的分类 ;

② 样本的实际分类 : 样本的实际分类是 A ;

③ 人的判断 : 人认为该样本分类是  A , 说明人判定正确 , 人如果认为该样本分类为 B , 说明人判断错误 ;

④ 机器的判断 : 机器认为该样本分类是A , 说明机器判定正确 ; 机器如果认为该样本分类为 B , 说明机器判断错误 ;

3 . 表内数据含义 : 表格中的 a , b , c , d  值表示样本的个数 ; :

①  a 含义 : 表示 人判断正确 , 机器判断正确 的样本个数 ; 数据集中人和机器同时分类正确的样本个数 ;

②  b 含义 : 表示 人判断错误 , 机器判断正确 的样本个数 ; 数据集中人分类错误 , 机器分类正确的样本个数 ;

③  c 含义 : 表示 人判断正确 , 机器判断错误 的样本个数 ; 数据集中人分类正确 , 机器分类错误的样本个数 ;

④  d 含义 : 表示 人判断错误 , 机器判断错误 的样本个数 ; 数据集中人和机器同时分类错误的样本个数 ;
 

六、K-NN 分类结果评价指标

K-NN 分类结果评价指标 :

① 准确率 

② 召回率

1、准确率

1 ) 准确率计算公式 :

P = a /(a + b )

(a+b) 是 机器 分类正确 的样本的总数 ;

a  是人和机器都认为正确的样本个数;

2)准确率理解 : 机器分类正确的样本中 , 哪些是真正正确的样本 ; ( a + b ) 是机器认为正确的样本 , 其中只有 a 个样本是真正正确的 ;


2、 召回率

1 )召回率计算公式 :

R = a/( a + c )

(a+c) 是 人认为 分类正确 的样本的总数 ;

 a 是人和机器都认为正确的样本个数;

2 ) 召回率理解 : 人认为分类正确的样本中 , 哪些是机器判定正确的 ; (a+c) 是人认为正确的样本个数 , 机器认为正确的是 a 个样本 ;
 

3、准确率与召回率关联

 

准确率 与 召回率 关系 : 这两个指标互相矛盾 ;

准确率 与 召回率 是互相影响的 , 准确率很高时 , 召回率很低 ;

准确率 100% 时 , 召回率很低 ; 召回率 100% 时 , 准确率很低 ;

4、准确率 与 召回率 综合考虑

 

1 ) 准确率 与 召回率 综合考虑 :

将准确率 与 召回率放在 上述公式中计算 ,  P 是准确率 ,  R 是召回率 ;

 α 是一个系数 , 通常  α 取值 0.5 ;
 

 

2 ) α 取值 0.5 时公式为 : 此时的度量指标叫做  F1​ 值 , 这个值经常作为 K-NN分类结果的度量指标 , 即考虑了准确率 , 又考虑了召回率 ;

 

参考文章:

【数据挖掘】K-NN 分类 ( 简介 | 分类概念 | K-NN 分类实例 | K-NN 分类准确度评估 | K-NN 分类结果评价指标 | 准确率 | 召回率 )

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

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

相关文章

leetcode 859. Buddy Strings(同伴字符串)

给出字符串s 和 goal, 判断交换 s 中的一对字母是否能得到goal. 必须是不同位置字母的交换。 思路&#xff1a; 先考虑边界情况&#xff0c; s 和 goal 的长度不相等时&#xff0c;s 怎么交换都不会得到goal. s 的长度 < 2时&#xff0c;没有可交换对象&#xff0c;肯定是…

【力扣】94、二叉树的中序遍历

94、二叉树的中序遍历 注&#xff1a;二叉树的中序遍历&#xff1a;左根右&#xff1b; // 非递归&#xff1a; var inorderTraversal function (root) {const arr [];//创建新数组&#xff1b;const stack [];//创建一个栈道&#xff1b;let o root;while( stack.length |…

办公实现降本增效,可借助微服务开源平台的力量!

在如今的快节奏发展时代&#xff0c;低代码开发平台拥有了一个广阔的发展天地&#xff0c;逐渐在通信业、医疗、物流、高校等众多大中型企业中获得一个立足之地&#xff0c;是助力企业提质、降本、增效的得力助手。微服务开源平台可以让企业实现这一目的&#xff0c;那么对于企…

AMBER分子动力学能量优化与分析、结合自由能计算专题

AMBER分子动力学能量优化与分析、结合自由能计算专题 第一天 时间:AM9:00~9:50 内容:六.分子动力学入门理/论 教学目标&#xff1a;了解本方向内容、理论基础、研究意义。 主要知识点:4分子力学简介 4.1分子力学的基本假设 4.2分子力学的主要形式 5分子力场 5.1分子力场的简…

passware kit forensic使用

一、从外部注册表文件提取密码 适用于不联网的情况下&#xff0c;例如2023盘古石杯的NAS取证 找到Windows/System32/config并在本地打开 将路径填充到config folder中 跑出来了John电脑对应的密码是paofen&#xff0c;NAS的密码是P88w0rd 后续遇见再补

Linux - 那些年测试服务器带宽的 3 种方式

方式一 speedtest-cli wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.pychmod x speedtest-cliorcurl -Lo speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.pychmod x speedtest-c…

【Linux】基础开发工具——yum篇

目录 &#x1f4d6;Linux下安装软件的三种方案&#x1f4f0;源代码安装&#x1f4f0;rpm安装&#x1f4f0;yum安装 &#x1f4d6;Linux软件包管理器yum&#x1f4f0;rz、sz&#x1f4f0;查看软件包&#x1f4f0;软件安装&#x1f4f0;软件删除 &#x1f4d6;yum源问题&#x1f…

Hadoop:DataNode启动失败:Initialization failed for Block pool

一、问题发现 ​在启动Hadoop集群后&#xff0c;发现原本应该是启动三台机子的数据节点&#xff0c;结果只有一台node2成功启动&#xff0c;另外两台&#xff08;node1、node3&#xff09;并没有启动&#xff0c;如下两图所示&#xff1a; 问题描述&#xff1a; ​确认配置信…

day3 QT对话框

目录 QDialog 标准对话框&#xff08;Standard Dialogs&#xff09;&#xff1a; 内置对话框&#xff08;Built-in Dialogs&#xff09;&#xff1a; 自定义对话框&#xff08;Custom Dialogs&#xff09; 示例 myqdialog.h widget.h myqdialog.cpp widget.cpp QDialog Q…

springboot实现网络图片转存的临时文件后上传腾讯云cos

有时复制一张图片url&#xff0c;想转存到自己的腾讯云cos保存。 实现思路是&#xff1a;先将网络图片url保存到当前项目一个临时文件夹里&#xff0c;然后发送腾讯云cos对象存储&#xff0c;返回一个url&#xff0c;最后&#xff0c;删除该临时文件图片。 测试结果 1. util实…

【C】分支和循环语句

目录 【1】什么是语句 【2】分支语句&#xff08;选择结构&#xff09; 【2.1】if 语句 【2.1.1】语法结构 【2.1.2】悬空else 【2.1.3】书写形式的对比 【2.1.4】练习 【2.2】switch 语句 【3.2.1】语法结构 【3.2.2】在switch语句中的 break 【3.2.3】default子句…

Nginx【Nginx场景实践(fair模块安装、Nginx配置故障转移、跨域问题、跨域问题解决)】(九)-全面详解(学习总结---从入门到深化)

目录 Nginx场景实践_fair模块安装 Nginx场景实践_Nginx配置故障转移 Nginx场景实践_跨域问题 Nginx场景实践_跨域问题解决 Nginx场景实践_fair模块安装 模块介绍 fair采用的不是内建负载均衡使用的轮换的均衡算法&#xff0c;而是可以根据 页面大小、加载时间长短智能的进…

C++(Day5)

思维导图&#xff1a; 全局变量&#xff0c;int monster 10000;定义英雄类hero&#xff0c;受保护的属性string name&#xff0c;int hp,int attck&#xff1b;公有的无参构造&#xff0c;有参构造&#xff0c;虚成员函数 void Atk(){blood-0;}&#xff0c;法师类继承自英雄类…

客户案例:构建可靠海外通邮系统,护航教育行业信息安全

►►►客户背景 某985高校作为一所国内知名的高等教育机构&#xff0c;拥有优质的师生资源和丰富的教学经验&#xff0c;积极开展与国外高校的合作交流&#xff0c;组织师生参与出国交流、学术考察等活动&#xff0c;在跨境科研合作和人才培养等领域开展深入合作&#xff0c;推…

2023-07-03:讲一讲Redis缓存的数据一致性问题和处理方案。

2023-07-03&#xff1a;讲一讲Redis缓存的数据一致性问题和处理方案。 答案2023-07-03&#xff1a; 数据一致性 当使用缓存时&#xff0c;无论是在本地内存中缓存还是使用 Redis 等外部缓存系统&#xff0c;会引入数据同步的问题。下面以 Tomcat 向 MySQL 中进行数据的插入、…

《操作系统》- 操作系统的发展与分类

目录 前言一、手工操作阶段1.1 人工操作方式1.2 脱机输入/输出方式 二、批处理阶段2.1 单道批处理系统2.2 多道批处理系统 三、分时操作系统四、实时操作系统五、微机操作系统的发展六、总结 前言 从第一台计算机诞生至今已过去70多年了&#xff0c;在这期间&#xff0c;计算机…

Python程序设计基础:程序流程控制(二)

文章目录 一、循环结构1、for语句2、while语句3、break和continue语句4、循环结构中的else语句5、循环的嵌套 一、循环结构 最基本的复杂工作就是循环&#xff0c;要想写出的程序能够执行更加复杂的工作&#xff0c;就需要将循环问题进行实现。 1、for语句 for语句用一个循环…

【剧前爆米花--爪哇岛寻宝】网络原理——ip地址管理,路由选择和数据链路层数据帧

作者&#xff1a;困了电视剧 专栏&#xff1a;《JavaEE初阶》 文章分布&#xff1a;这是一篇关于网络原理的文章&#xff0c;在这篇文章中我会具体介绍ip地址的分配管理&#xff0c;信息传输的路由选择以及以以太网来举例的数据链路层数据帧&#xff0c;希望对你有所帮助&#…

IDE /Qt Creator 文本编辑器之文件编码设置

文章目录 概述"QtCreator 文件编码" 配置项的使用效果将代码文件修改为GB2312编码"QtCreator 文件编码" 配置项的功能不会影响qml文件的加载方式改动pro文件的编码格式?其他 概述 在 Qt Creator 工具 - 选项 - 文本编辑器 - 行为选项卡中&#xff0c;存在…

RabbitMQ入门指南

人生永没有终点。只有等到你瞑目的那一刻&#xff0c;才能说你走完了人生路&#xff0c;在此之前&#xff0c;新的第一次始终有&#xff0c;新的挑战依然在&#xff0c;新的感悟不断涌现。 文章目录 一、MQ与RabbitMQ概述1. MQ简述2. MQ的优势3. MQ的劣势4. 常见的MQ产品5. Rab…