1
模式识别与智能计算的MATLAB实现
1.14.1.7 12.1.7 脸谱图
12.1.7 脸谱图

脸谱图是用脸谱来表达多变量的样品。一个人的脸谱可以具有非常生动的表情及形象,脸的胖瘦、喜怒哀乐给人留下深刻的印象。用脸谱来表达多变量首先是由美国统计学家H. Chernoff于1970年提出的,他将样品的p个变量用人脸的某一个部位的形状或大小来表示,一个样品用一张脸谱来表达。他首先将脸谱图用于聚类分析之中,引起了各国统计学家的极大兴趣,并得到了广泛的应用。

绘制脸谱图(见图12.2)的具体步骤如下:

alt

图12.2 脸谱图的绘制

脸谱图各部分至少由18个变量(x1,x2,…,x18)构成,当变量数少于18个时,可将脸中的某几个部位固定;而当变量数多于18个时,可以设法在脸谱中再添加一些部位。

脸谱主要由6个部分构成:脸的轮廓、鼻、嘴、眼、眼球及眉。

(1)脸的轮廓

它由上、下两个椭圆来构成,它们的短轴均在y轴上,长轴平行于x轴,两椭圆交于P和P′,这两点关于y轴对称。P到原点O的位置由距离h*和OP与x轴夹角θ*决定,其中

alt

其中,H为常数,H大,脸也大。

脸的两个椭圆与y轴分别交于U和L,且

alt

由上述条件还不能确定脸的两个椭圆,进一步规定,脸的上半部椭圆的离心率为x4,下半部的离心率为x5

椭圆的标准方程为

alt

其中,a和b分别为椭圆的长轴和短轴。

离心率e的定义为

alt

根据离心率e,椭圆的标准方程可以表示为

(1-e2)x2+y2=b2

给了上述条件后,便可以作脸的两个椭圆。现以作下半部椭圆来说明,记下椭圆的长轴、短轴分别为a和b,记d≌h-b,P点的坐标为(X*,Y*),则

X*=h*cosθ,  Y*=h*sinθ

椭圆中心的坐标为(0,-d),故椭圆方程为

x2(1-e2)+(y+d)2=b2=(h-d)2

它过P点,应有

X*2(1-e2)+(Y*+d)2=(h-d)2

可解得

alt

e为离心率(x5),求出d后就可以得到脸下半部的椭圆方程,据此便可以画出其图形。脸上半部的椭圆绘制方法与此类似。

(2)鼻

以O为中心,在y轴上下各取长度hx6,画一条粗线。

(3)嘴

在O点下方,h[x7+(1-x7)x6]的位置,用半径为h/∣x8∣的圆弧来描述,规定x8为正,圆弧为上;x8为负,圆弧向下。嘴的大小由am来决定,am=x9(h/∣x8∣)。嘴的圆弧关于y轴对称,如果嘴太大,则超过脸的轮廓,这时用x9wm来代替,其中wm为点Pm到脸轮廓处的水平距离。

(4)眼

眼用两个椭圆表示,椭圆的中心分别为(xe,ye)和(-xe,ye),其中规定

alt

其中,we为点(0,ye)到脸轮廓的水平距离。

两眼椭圆的长轴与x轴的夹角分别为θ和π-θ,其中

alt

其长轴为Le,且

Le=x14min(xe,we-xe

椭圆的离心率为x13

(5)眼球

从眼的椭圆中心,沿着椭圆的长轴到±re(2x15-1)的位置,其中

alt

其中,re为眼的长轴在x轴上投影的长度。

(6)眉

从眼的椭圆中心向上到yb的高度决定了眉的中心,其长度为2Lb,它与水平的夹角为θ**,其中:

alt

需要说明的是,上述的步骤只是脸谱最主要部位的画法。可以根据变量的多寡及容易程度对画法进行改正。

脸谱图在应用上存在的最大问题是变量安排的次序,用哪个变量来画脸的哪个部位存在着人的主观性,而不同的用法给人留下的脸谱的印象大不相同,严重时可能会失真。研究表明,随机地安排变量大约会造成25%的误差变动。所以在某个领域的实际应用过程中,都要经过一定的探索才能绘制出合理的脸谱图,工作量比较大,并且不一定适合其他领域的应用。可以采用主成分分析方法来解决对应变量的分配问题。经过主成分分析后,取L个最大的特征值对应的特征矢量作为新变量输入,L的取值范围为k≤L≤d,其中d为维数,k为主成分数,k一般取方差贡献率在96%以上的主成分数目,L=d表示全部保留所有主成分,当d>18时,可以增加脸谱特征,也可以只保留L(L≤18)个主成分。但是当L(L≤18)个主成分的方差累贡献率低于95%时,则只有增加脸谱特征。

脸谱图中数据的大小对图形有很大的影响,各变量的范围如表12.1所列。如果希望第j个变量的取值范围为[aj,bj],可以对原始数据作如下的线性变换:

alt

表12.1 脸谱图各变量的定义及范围

alt

其中,R为极差。这时alt已落入[aj,bj]中。