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

【海量数据挖掘/数据分析】 之 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 分类结果评价指标 | 准确率 | 召回率 )

猜你喜欢

转载自blog.csdn.net/u014361280/article/details/131524444