1
模式识别与智能计算的MATLAB实现
1.4.5 2.5 统计模式识别在科学研究中的应用

2.5 统计模式识别在科学研究中的应用

例2.1 假设细胞识别中正常(ω1)和异常(ω2)两类的先验概率分别为0.9和0.1。现有一待识别的细胞,其观测值为X,从类条件概率密度分布曲线上查得P(X∣ω1)=0.2,P(X∣ω2)=0.4,并且有表2.2的决策表。试利用最小错误率贝叶斯决策和最小风险贝叶斯决策进行分类。

表2.2 决策表

alt

解:

(1)利用贝叶斯公式计算后验概率

alt

根据最小错误率贝叶斯决策,判定该细胞为正常。

(2)计算条件风险

alt

由最小风险贝叶斯决策判定该细胞为异常。

例2.2 对下列数据X=[0 0;0 1;1 0;0.5 4;1 3;1 5;1.5 4.5;6 4;6.5 5;7 4;7.5 7;8 6;8 7],用ISODATA算法进行聚类。

解:

alt

以下为ISODATA函数。

alt

例2.3 对例2.2的结果用K-均值法进行分类,取K=2。

解:

alt

例2.4 为了解某河段As、Pb污染状况,设在甲、乙两地监测,采样测得这两种元素在水中和底泥中的浓度(见表2.3)。依据这些数据判别未知样本是从哪个区域采得的。

表2.3 两组已知样品原始数据 mg/kg

alt

解:

alt

限于篇幅,只列出两类问题的Fisher分类函数,多类分类可以采用多个两类分类器完成。

alt

例2.5 胃病病人和非胃病病人的生化指标测量值如表2.4所列。试用SICMA法对某未知样进行判别。

表2.4 胃病病人和非胃病病人生化指标的测量值

alt

解:

alt

从计算结果中看出,未知样本中第1个样本属于第1类,第2和3个样本属于第2类。程序中sum1为自编求平方和的函数:

alt

也可以利用MATLAB中的分类函数进行分类:

alt

例2.6 对例2.4中的数据用K-近邻法进行分类。

解:

MATLAB中有专门的K-近邻法分类函数,其调用方式为:

alt

其中,sample、training、group分别为测试样本、训练样本及训练样本对应的类别号;k为近邻法,默认值为1;distance为距离,可以选euclidean、cityblock、cosine、Correlation、Hamming;rule为表决规则,可以选nearest、random、consensus。

alt

例2.7 对例2.4的数据用决策树分类器进行分类。

解:

MATLAB中有专门的决策树分类器函数。

alt

例2.8 利用例2.4中的训练集数据,用ALKNN法对样品x=[1.40 4.80 7.30 23.20]进行判别。

解:

alt

以下为ALKNN函数。

alt

例2.9 欲将某河流上游8个小分支水系分类,从这几条小河采集水样,每个样品测两个同量纲指标(x1为无机物指标,x2为有机物指标),测量结果如表2.5所列。请对其进行系统聚类分析。

表2.5 测试数据

alt

解:

(1)利用MATLAB中的相关函数进行分类

alt

从图2.5中可明显看出样品的聚类情况。

alt

图2.5 样品冰柱图

(2)利用自编的系统聚类函数进行分类

alt

限于篇幅,不列出所有的自编系统聚类程序,只列出其中的“最小距离法”部分的程序,其中pattern_dis为自编的求距离函数。

alt

例2.10 利用势函数法对两类样本数据x1=[1 0;0 -1],x2=[-1 0;0]进行分类。

解:

alt

限于篇幅,只列出两类问题的分类函数,对于多类问题,可利用多个两类分类器进行分类。

alt

例2.11 利用感知器算法对例2.5中的数据进行模式识别。

解:

alt

以下为感知器算法函数。

alt

例2.12 为了解某材料的性能,利用3种合成方法各制备了5个样品,每个样品均作了强度等4个变量的分析,原始数据见表2.6。试用相似度分类法确定3个待判样品所属组别。

表2.6 原始数据

alt

解:相似度聚类法是利用模式相似度参数进行聚类的一种方法。

alt

限于篇幅,只列出相似度聚类的一部分:

alt

例2.13 利用最小均方误差算法(LMSE或H-K算法)求解例2.12的数据。

解:

alt

第2个样本与例2.11求出的结果有差异,这可能是由于训练样本的代表性不够造成的。

alt

例2.14 测定了冠心病人和正常人血中微量元素的含量(见表2.7),试用Bayes法进行分类。

表2.7 冠心病人及正常人血中4种微量元素的测定结果 µg/mL

alt

解:

alt

结果表明,第4、5、7号样品分类与原归类不一致。

alt

例2.15 在许多问题中样品是依次排列的(如以时间、地理位置或优劣为序),在它们分类时,不能打乱样品的次序,称为有序样品的聚类,其中最常用的方法称最优分割法。例如对动植物按生长的年龄段进行分类,年龄的顺序是不能改变的,否则就没有实际意义。

为了了解儿童的生长发育规律,随机抽样统计了男孩从出生到11岁每年平均增长体重的重量数据,如表2.8所列,试问男孩发育可分为几个阶段?

表2.8 1~11岁男孩每年平均增长的体重

alt

解:

设x1,x2,…,xn为有序样品,希望在不改变下标的条件下将它们分成类,即

G1={x1,…,xi1},  G2={xi1+1,…,xi2},…,Gk={xik-1+1,…,xn

其中,0<i1<i2<ik-1<n,并称G1,G2,…,Gk为其中的一个k分割。对于这样的分割,共有alt个。

对于给定的0<i1<…<ik-1<n,则i1,…,ik-1代表一种k分割,即令

Sn(k;i1,…,ik-1)=D0,i1+Di1,i2+…+Dik-1,n

为对应k分割的总变差,其中Di,j为类Gi,j={xi+1,…,xj}(i<j)的距离。

显然,Sn越小,各类间的距离也越小,分类也越合理。因此,只要能使

alt

便可以得到最优的分割。

最优分割可以采用穷举法,即将alt种分割方法穷举出来,然后找到最小总变差的分割,也可以采用动态规划的方法进行求解,即Fisher最优求解法,下面是求解过程。

①对于给定的有序样本集,可计算如下的距离表:

alt

②求最优二分割的方法。首先将有序样本作n-1种的二分割法,即

{{{x1,…,xn-1},{xn}};{{x1,…,xn-2},{xn-1,xn}},…,{{x1,x2},{x3,xn}},{{x1},{x2,…,xn}}}

每种分法各对应一个总变差,即

alt

同时,记录最优划分的位置p(i,2),2≤i≤n。

③求最优三分割的方法。用类似的方法求出最优3分割、4分割…一直到k分割。

④分类个数(k)的确定。如果能从实际问题中事先确定k当然最好;如果不能,则可以从S(n,k)随k的变化趋势图中找到拐点处,作为确定k的依据。当曲线拐点很平缓时,可选择的k较多,这时需要用其他的方法来确定,如均方比法和特征根法。

编制相应的程序,求出S(n,k)及对应的分类位置。

alt

得到如下S的结果,其中k为2~10,l为3~11,括号中的数字为g值,表示分类的位置。

alt

根据S(n,k)与k的曲线,选k=4,即儿童生长可分成4个阶段。根据S(11,4)=0.1275(8),可知最优损失函数值为0.1275,最后的分割在第8个元素处,因此G4包含的样本为{8~11},然后根据求S最小值可得S(5,3)=0.020(5),即G3包含的样本为{5~7},类似地,S(4,2)=0.020(2),G2中的样本为{2,3,4},G1={1}。

alt

即样本的最优有序分类为:{9.3},{1.8,1.9,1.7},{1.5,1.3,1.4},{2.0,1.9,2.3,2.1}。