对Iris数据进行k近邻法分类编程测试(模式识别课堂作业)

对Iris数据进行近邻法分类编程测试

1 问题
我们有3种不同类型的鸢尾花的各50个样本数据构成:分别是第一种Iris-setosa,第二种Iris-versicolor和第三种Iris-virginica。
选取两个种类进行分类,特征取其中的第一个特征和第三个特征构成二维特征。
使用k近邻法最近邻法进行判断,编程附带程序选择Iris-setosa和Iris-virginica。
训练集取任意两种花共80组数据,每类40组数据组成。
测试集取任意两种花共20组数据,每类10组数据组成。
一次编程,多种测试:
1、三种不同的两类组合:第一种Iris-setosa和第二种Iris-versicolor;第一种和第三种Iris-virginica,第二种和第三种。
2、五种不同的k值:k取1,3,5,7,9。
3、两种不同的样本划分:每类40个学习,10个待识别,或25个学习,25个待识别。
完成上述对比(基本的对比组合,可以扩展),生成图像,做成表格,进行分析,加入作业,整理成1个word提交。

2 方法描述
方法描述:k近邻法
k近邻法实际上就是近邻法的延伸,最近邻法的是k近邻法,k=1时的特例。我的实现思路是先确定一个k值,然后计算所有样本点与已知训练样本之间的距离装入一个矩阵中,然后将这些距离再有小到大的进行排列。取得前k个值,然后距离最近的这前k个值,进行“多数表决”,即前k个距离中哪一类样本占多,就将未知样本分到该类中。当k=1时,该方法就称为最近邻法,相比k近邻法,最近邻法更加简单。在使用k近邻法将分类完成后,统计结果,分析训练样本中和测试样本中分类错误的个数,计算各自错误率,来分析对Iris数据进行近邻法分类编程是否有较好的可信度。
3 数据读取及二维显示
取三种花的第一和第三种特征作为二维图像描点的横纵坐标。并且将每类花的前40个数据作为训练样本,后10个数据作为测试样本,分别将它们画在图中。注:同类花的颜色相同,训练样本为“*”形状,测试样本为“o”形状。
在matlab中运用“load”函数写入数据,第一类花的第1,3两种特征在第1,3列;第二类花的第第1,3两种特征在第5,7列;第三类花的第第1,3两种特征在第9,11列;将所有训练样本与测试样本都在图3-1中显示出来在这里插入图片描述

图 3-1 所有样本的二维显示图
4 对第一类花Iris-setosa与第三类花Iris-virginica的k近邻法分类测试
下图4-1是第一类花Iris-setosa与第三类花Iris-virginica的第1,3两种特征的二维图像表示,由图中可以比较直观看出两类花有一定的区别,现在希望做出的程序也能实现这种分类。
在这里插入图片描述
图 4-1 第一类花Iris-setosa与第三类花Iris-virginica的二维显示图

将k取不同的值编程并分析,如下表4-2:
k值 1 3 5 7 9
成功率rate 100% 100% 100% 100% 100%
表4-2 取不同k值时,测试成功的概率

在k取得1,3,5,7,9下不同的训练样本与测试样本比例分析,40训练样本10测试样本与25训练样本25测试样本的表格编程并分析,如下表4-3:

训练样本/测试样本 40/10 25/25
k=1成功率rate 100% 100%
k=3成功率rate 100% 100%
k=5成功率rate 100% 100%
k=7成功率rate 100% 100%
k=9成功率rate 100% 100%
表4-3 取不同k值时,测试成功的概率

5 对第一类花Iris-setosa与第二类花Iris-versicolor的k近邻法分类测试
下图5-1是第一类花Iris-setosa与第二类花Iris-virsicolor的第1,3两种特征的二维图像表示,由图中可以比较直观看出两类花有一定的区别,现在希望做出的程序也能实现这种分类。
在这里插入图片描述
图 5-1 第一类花Iris-setosa与第二类花Iris-versicolor的二维显示图
将k取不同的值编程并分析,如下表5-2:
k值 1 3 5 7 9
成功率rate 100% 100% 100% 100% 100%
表5-2 取不同k值时,测试成功的概率

在k取得1,3,5,7,9下不同的训练样本与测试样本比例分析,40训练样本10测试样本与25训练样本25测试样本的表格编程并分析,如下表5-3:

训练样本/测试样本 40/10 25/25
k=1成功率rate 100% 100%
k=3成功率rate 100% 100%
k=5成功率rate 100% 100%
k=7成功率rate 100% 100%
k=9成功率rate 100% 100%
表5-3 取不同k值时,测试成功的概率

6 对第二类花ris-versicolor与第三类花Iris-Iris-virginica的k近邻法分类测试
下图6-1是第二类花ris-versicolor与第二类花Iris-virginica的第1,3两种特征的二维图像表示,由图中可以比较直观看出两类花有一定的区别,现在希望做出的程序也能实现这种分类。
在这里插入图片描述
图 6-1 第二类花Iris-versicolor与第三类花Iris-virginica的二维显示图
将k取不同的值编程并分析,如下表6-2:
k值 1 3 5 7 9
成功率rate 85% 85% 95% 95% 95%
表6-2 取不同k值时,测试成功的概率

在k取得1,3,5,7,9下不同的训练样本与测试样本比例分析,40训练样本10测试样本与25训练样本25测试样本的表格编程并分析,如下表6-3:

训练样本/测试样本 40/10 25/25
k=1成功率rate 85% 92%
k=3成功率rate 85% 92%
k=5成功率rate 85% 92%
k=7成功率rate 95% 92%
k=9成功率rate 95% 92%
表6-3 取不同k值时,测试成功的概率
7 分析结果
由上面三组实验和结果,我们可以比较容易地得出结论,总体上来说k近邻法对于判断Iris数据并进行分类,其可信度是比较高的。特别是对于第1,3组;第1,2组;这两组数据样本分离程度较大,识别的成功率更高。而对于第2,3两组由于样本特征较为接近,出现了部分判别失败等现象,但仍然有较高的成功率,并且可以看出在k=1,3,5,7,9的这组数据中,成功率是由低到高的。可以观察到k=1为最近邻法,通过这种方法也有较高成功率,且较为简便,可以作为快速识别方法。

附:具体程序如下所示(以第一种):

clc;
clear all;
close all;
%%三类花的样本读取%% 
load IRISData.txt
class_1 = IRISData(1:40,[1,3]);        %%取出data第1-40行,13列作为第一类的样本
%%class_2 
  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值