基于最⼩距离分类器的鸠尾属植物分类

一、理论基础

最⼩距离分类⼜称最近邻分类,是⼀种⾮常简单的分类思想。这种基于匹配的分类技术通过以⼀种原型模式向量代表每⼀个类别,识别时⼀个未知模式被赋予⼀个按照预先定义的相似性度量与其距离最近的类别,常⽤的距离度量有欧⽒距离、⻢⽒距离等。下⾯我们以欧⽒距离为例讲解最⼩距离分类器。

⼀种简单的做法是把每个类所有样本的平均向量作为代表该类的原型,则第i类样本的代表向量为

m i = 1 N i ∑ x ∈ w i x i , i = 1 , 2 , ⋯   , w {{m}_{i}}=\frac{1}{{{N}_{i}}}\sum\limits_{x\in {{w}_{i}}}{{{x}_{i}},i=1,2,\cdots ,w} mi=Ni1xwixi,i=1,2,,w

式中:Ni为第i样本的数⽬;Wi表⽰第i类样本的集合;总类别数为W。

当需要对⼀个未知模式x进⾏分类时,只需分别计算x与各个mi(i=1,2,…,W)的距离,然后将它分配给距离最近的代表向量所代表的类别。

对于欧⽒距离表⽰的x与各个mi 的距离,有

D i ( x ) = ∥ x − m i ∥ , i = 1 , 2 , ⋯   , W {{D}_{i}}\left( x \right)=\left\| x-{{m}_{i}} \right\|,i=1,2,\cdots ,W Di(x)=xmi,i=1,2,,W

其中, ∥ x − m i ∥ = ( ( x − m i ) T ( x − m i ) ) 1 / 2 \left\| x-{{m}_{i}} \right\|={{\left( {{\left( x-{{m}_{i}} \right)}^{T}}\left( x-{{m}_{i}} \right) \right)}^{1/2}} xmi=((xmi)T(xmi))1/2 ,表⽰欧几里的范数,即向量的模。我们在W个 D i ( x ) {{D}_{i}}\left( x \right) Di(x)中找到最⼩的⼀个,不妨设为 D i ( x ) {{D}_{i}}\left( x \right) Di(x) ,则 x属于第 j类。

二、实例演示

以Matlab⾃带的鸢尾属植物数据集为例,要利⽤最⼩距离分类器区分测试集中的样本属于哪⼀类植物。数据集共有setosa、versicolor和virginica 三类鸢尾属植物。载⼊fisheriris数据集之后,meas中共包含了150个植物样本,meas矩阵的每⼀⾏是代表⼀个植物样本的特征向量。⽽细胞数组species中包含了对应着150个样本的类别信息,从中可⻅前50个样本为第1类,中间50个为第2类,后50个属于第3类。实验中,利⽤每类的前40个样本⽣成代表该类的模板,后10个被保留⾄⼀个独⽴的测试集,⽤于验证最⼩距离分类器的识别率。

计算每个测试样本与3类模板向量最⼩距离,并且将与测试样本距离最近的模板向量所代表的类作为测试样本。

最后输出结果:

识别率为0.96667

三、资源获取

相关资源可从如下链接获取:

基于欧⽒距离-最⼩距离分类器的鸠尾属植物分类

posted @   简单光学  阅读(152)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示