KNN实例

举报
俺想吃蜂蜜 发表于 2022/04/04 23:24:52 2022/04/04
【摘要】 KNN是什么?KNN是通过测量不同特征值之间的距离进行分类。它的的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。K通常是不大于20的整数。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 那么K值有什么影响?K 值比较小,就相当于未分...

KNN是什么?

KNN是通过测量不同特征值之间的距离进行分类。它的的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。K通常是不大于20的整数。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。

那么K值有什么影响?

K 值比较小,就相当于未分类物体与它的邻居非常接近才行。这样产生的一个问题就是,如果邻居点是个噪声点,那么未分类物体的分类也会产生误差,这样 KNN 分类就会产生过拟合。
K 值比较大,相当于距离过远的点也会对未知物体的分类产生影响,虽然这种情况的好处是鲁棒性强,但是不足也很明显,会产生欠拟合情况,也就是没有把未分类物体真正分类出来。

接下来让我们用实例来演算KNN算法

使用下表给出的样本数据,采用KNN算法对元组<陶陶,M,1.86>进行分类,只用身高参与距离计算,K=3

序号 姓名 性别 身高 类别
1 张红 F 1.6 Short
2 王帅 M 2 Tall
3 马华 F 1.65 Medium
4 刘晓 F 1.75 Tall
5 高源 F 1.5 Short
6 刘海 M 1.75 Medium
7 赵璐 F 1.55 Short
8 郭好 M 1.7 Short
9 李汉 M 1.95 Tall
10 刘军 M 2.0 Tall

只用高度参与距离计算, k=3。跟踪 KNN算法执行如下:

(1)对前 3个记录, N={<张红,F, 1.60>,<王帅,M,2>,<马华,F,1.65>}

(2)对第4个记录 =<刘晓,F,1.75>,相比测试记录<陶陶,M,1.86>,需要替换掉N中和测试记录差别最大的< 张红,F,1.6>,得到 N={<刘晓,F,1.75>,<王帅,M,2>,<马华,F,1.65>}。

(3)第5个记录 =<高源,F,1.50>,没变化

(4)对第6个记录 =<刘海,M,1.75>,需要替换掉<马华,F,1.65>,得到N ={<刘晓,F,1.75>,<王帅,M,2>,<刘海,M,1.75>}。

(5)对第7、8个记录,没变化。

(6)对第9个记录 =<李汉,M,1.95>,需要替换掉<王帅,M,2>,得到N ={<刘晓,F,1.75>,<李汉,M,1.95>,<刘海,M,1.75>}。

(7)对第10个记录 ,没变化。

(8)最后输出N={<刘晓,F,1.75>,<李汉,M,1.95>,<刘海,M,1.75>},这三项中两个属于Tall,一个属于Medium,所以<陶陶,M,1.86>属于Tall。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。