特征选择:从n个度量值集合{x1,x2,⋯,xn}中,按某一准则选取出供分类用的子集,作为降维(m维,m<n)的分类特征
特征提取:使(x1,x2,⋯,xn)通过某种变换,产生m个特征(y1,y2,⋯,ym)(m<n),作为新的分类特征,或称为二次特征
特征选择和特征提取的目的都是为了在尽可能保留识别信息的前提下,降低特征空间的维数,以达到有效的分类
模式类别可分性的测度
点与点之间的距离
在n维空间中,a,b两点之间的欧式距离为:
D(a,b)=||a−b||
写成距离平方:
D2(a,b)=(a−b)T(a−b)=n∑k=1(ak−bk)2
其中a,b是n维向量,其第k个分量分别是ak,bk
点到点集之间的距离
在n维空间中,点x到点a(i)之间的距离平方为:
D2(x,a(i))=n∑k=1(xk−a(i)k)2
因此,点x到点集{a(i)}i=1,2,⋯,K之间的均方距离为:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯D2(x,{a(i)})=1KK∑i=1D2(x,a(i))=1KK∑i=1{n∑k=1(xk−a(i)k)2}
类内距离
n维空间中同一类内各模式样本点集{a(i)}i=1,2,⋯,K,其内部各点的均方距离为¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯D2({a(j),},{a(i)}),其中i,j=1,2,⋯,K,i≠j,即:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯D2({a(j),},{a(i)})=1KK∑j=1⎡⎣1K−1K∑i=1,i≠jn∑k=1(a(j)k−a(i)k)2⎤⎦
可以证明:
¯¯¯¯¯ak=1KK∑i=1a(i)kσ2k=1K−1K∑i=1(a(i)k−¯¯¯¯¯ak)2¯¯¯¯¯¯¯D2=2n∑k=1σ2k
类内散布矩阵
考虑一类内模式点集{a(i)}i=1,2,⋯,K,其类内散布矩阵为:
S=K∑i=1{(a(i)−m)(a(i)−m)T}
其中:
m=1KK∑i=1a(i)
对属于同一类的模式样本,类内散布矩阵表示各样本点围绕其均值周围的散布情况
类间距离和类间散布矩阵
在考虑有两个以上的类别,如集合{a(i)},{b(j)}时,类间距离对类别的可分性起着重要作用,此时应计算:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯D2({a(i),},{b(j)})i=1,2,⋯,Ka,j=1,2,⋯,Kb
为简化起见,常用两类样本各自质心间的距离作为类间距离,并假设两类样本出现的概率相等,则:
D2=n∑k=1(m1k−m2k)2
其中m1,m2为两类模式样本集各自的均值向量,m1k,m2k为第k个分量,n为维数
写成矩阵形式:
Sb2=(m1−m2)(m1−m2)T
上式为两类模式的类间散布矩阵,对于三个以上的类别,类间散布矩阵常写成:
Sb=c∑i=1P(wi)(mi−m0)(mi−m0)T
其中m0是多类模式c类分布的总体均值向量,即:
m0=E(x)=c∑i=1P(wi)mi,∀wi,i=1,2,⋯,c
多类模式集散布矩阵
多类情况的类内散布矩阵,可写成各类的类内散布矩阵的先验概率的加权和,即:
Sw=c∑i=1P(wi)E{(x−mi)(x−mi)T|wi}=c∑i=1P(wi)Ci
其中Ci是第i类的协方差矩阵
有时,用多类模式总体分布的散布矩阵来反映其可分性,即:
St=E{(x−m0)(x−m0)T},x∈∀wi,i=1,2,⋯,c,其中m0为多类模式分布的总体均值向量。可以证明St=Sw+Sb,即总体散布矩阵是各类类内散布矩阵与类间散布矩阵之和
特征选择
从n个度量值集合{x1,x2,⋯,xn}中,按某一准则选取出供分类用的子集,作为降维(m维,m<n)的分类特征,特征选择的准则为:使不同类别模式特征的均值向量之间的距离最大,而属于同一类的模式特征,其方差之和应最小,假设各原始特征是统计独立的,此时只需要对训练样本的n个测量值独立的进行分析,从中选出m个最好的作为分类特征即可,下面以对于wi,wj两类训练样本的特征选择为例:
对于wi,wj两类训练样本,假设其均值向量为mi,mj,其k维方向的分量为mik,mjk,方差为σ2ik,σ2jk,定义可分性准则函数:
Gk=(mik−mjk)2σ2ik+σ2jk,k=1,2,⋯,n
则GK为正值,GK值越大,表示测度值的第k个分量对分离wi,wj两类越有效,将GK按大小排列,选出最大的m个对应的测度值作为分类特征,此准则函数在类概率密度函数不是或不近似正态分布的时候不再适用,下面是一般特征的散布矩阵准则:
类内:Sw=∑ci=1P(wi)E{(x−mi)(x−mi)T|wi}=∑ci=1P(wi)Ci
类间:Sb=∑ci=1P(wi)(mi−m0)(mi−m0)T
直观上,类间离散度越大且类内离散度越小,则可分性越好,因此,可推导出散布矩阵准则采用如下形式:
行列式形式:J1=det(S−1wSb)=∏iλi
迹形式:J2=tr(S−1wSb)=∑iλi
λi为S−1wSb的特征值,使J1,J2最大的子集可作为选择的分类特征
离散K-L变换
之前的特征选择是简单的删掉n−m个特征,而原来的n个数据都在不同程度上反映了识别对象的某些特征,如果将原来的特征做正交变换,获得的每个数据都是原来n个数据的线性组合,然后从新的数据中选出少数几个,使其尽可能的反映各类模式之间的差异,而这些特征间又尽可能的相互独立,则比单纯的选择方法更灵活,K-L变换(Karhunen-Loeve变换)就是一种适用于任意概率密度函数的正交变换,下面是离散的有限K-L展开式的形式:
设一连续的随机实函数x(t),T1≤t≤T2,则x(t)可用已知的正交函数集{ϕj(t),j=1,2,⋯}的线性组合来展开,即:
x(t)=a1φ1(t)+a2φ2(t)+⋯+ajφj(t)+⋯=∞∑j=1ajφj(t),T1≤t≤T2
其中,aj为展开式的随机系数,ϕj(t)为一连续的正交函数,满足:
∫T2T1φn(t)~φm(t)dt={1m=n0m≠n
~φm(t)表示的是共轭复数式,将上式写成离散形式:使连续随机函数x(t)和连续正交函数ϕj(t)在区间T1≤t≤T2内被等间隔采样为n个离散点,即:
x(t)→{x(1),x(2),⋯,x(n)}φj(t)→{φj(1),φj(2),⋯,φj(n)}
写成向量形式:
x=(x(1),x(2),⋯,x(n))Tφj=(φj(1),φj(2),⋯,φj(n))T,j=1,2,⋯,n
得到离散展开式:
x=n∑j=1ajϕj=Φa,T1≤t≤T2
其中a为展开式中随机系数的向量形式:
a=(a1,a2,⋯,aj,⋯,an)T
Φ为n×n矩阵,即:
Φ=(φ1,φ2,⋯,φn)=⎡⎢
⎢
⎢
⎢⎣φ1(1)φ2(1)⋯φn(1)φ1(2)φ2(2)⋯φn(2)⋯⋯⋯⋯φ1(n)φ2(n)⋯φn(n)⎤⎥
⎥
⎥
⎥⎦
如果对c中模式类别{wi}i=1,⋯,c做离散正交展开,则对每一模式可分别写成xi=Φai,对于各个模式类别,正交函数都是相同的,但其展开系数向量ai不同,K-L展开式的根本性质是将随机向量x展开为另一组正交向量φj的线性和,下面是正交向量集{φj}的确定:
设随机向量x的总体相关矩阵为R=E{xxT},由:
x=n∑j=1ajϕj=Φa,T1≤t≤T2
将上式代入自相关矩阵得:
R=E{ΦaaTΦT}=Φ(E{aaT})ΦT
要求向量a的不同分量统计独立:
E(ajak)={λjj=k0j≠k
写成矩阵形式:
E{aaT}=Dλ=⎡⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢
⎢⎣λ10⋯⋯00⋱0⋯00λj00⋯0⋱00⋯⋯0λn⎤⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥
⎥⎦
则有:
R=ΦDλΦT
由于Φ的各个分量ϕj都相互正交,所以:
RΦ=ΦDλΦTΦ=ΦDλ
ϕj对应为:
Rϕj=λjϕj
可以看出,λj是x的自相关矩阵R的特征值,ϕj是对应的特征向量,K-L展开式系数为:
a=ΦTx
下面总结一下K-L展开式系数的计算步骤:
- 求随机向量x的自相关矩阵:R=E{xxT}
- 求出矩阵R的特征值λj和对应的特征向量Φj,j=1,2,⋯,n,得矩阵:
Φ=(φ1,φ2,⋯,φn)
a=ΦTx
K-L展开式用于特征选择相当于一种线性变换,若从n个特征向量中取出m个组成变换矩阵Φ,即:
Φ=(φ1 φ2 ⋯ φm),m<n
此时,Φ是一个n×m维矩阵,x是n维向量,经过ΦTx变换,即得到降维为m的新向量,接下来的问题是如何选取变换矩阵Φ,使得降维后的新向量在最小均方差条件下接近原来的向量x,对于x=∑nj=1ajϕj,现在仅取m项,对略去的系数项用预先选定的常数b代替,此时对x的估计值为:
^x=m∑j=1ajϕj+n∑j=m+1bϕj
则产生的误差为:
Δx=x−^x=n∑j=m+1(aj−b)ϕj
Δx的均方误差为:
¯¯¯¯¯ε2=E{||Δx||}2=n∑j=m+1{E(aj−b)2}
要使均方误差最小,对b的选择应满足:
∂∂b[E(aj−b)2]=∂∂b[E(a2j−2ajb+b2)]=−2[E(aj)−b]=0
因此:
b=E(aj)
也就是省略掉的a中的分量应该使用它们的数学期望来代替,此时的误差为:
¯¯¯¯¯ε2=n∑j=m+1E[(aj−E{aj})2]=n∑j=m+1ϕTjE[(x−E{x})(x−E{x})T]ϕj=n∑j=m+1ϕTjCxϕj
其中,Cx为x的协方差矩阵,设λj是Cx的第j歌特征值,ϕj是与λj对应的特征向量,则:
Cxϕj=λjϕj
由于:
ϕTjϕj=1
从而:
ϕTjCxϕj=λj
所以:
¯¯¯¯¯ε2=n∑j=m+1ϕTjCxϕj=n∑j=m+1λj
也就是省略掉的系数项对应的λj越小,误差也越小
在进行特征提取之前,需要确保E[aj]=0,因为E(a]=E[ϕTx]=ϕTE[x],所以也就是计算x的均值是不是为0,在进行K-L变换之前需要现将其均值作为新坐标轴的原点,如果均值不为0,那么只能得到次最佳的结果
将K-L展开式系数aj(也就是变换之后的特征)用yj表示,写成向量形式y=ϕTx,此时变换矩阵ϕ用m个特征向量组成,为了使均方误差最小,根据上面的推导,不采用的特征向量,其对应的特征值应该尽可能小,通过K-L变换能获得互不相关的新特征,若采用较大特征值对应的特征向量组成变换矩阵,则能对应的保留原模式中方差最大的特征成分,所以K-L变换起到了减小相关性,突出差异性的效果,K-L变换也称为主成分变换PCA变换
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异