模式识别学习笔记-lecture4-特征选择和提取
特征选择:从\(n\)个度量值集合\(\{x_1,x_2,\cdots,x_n\}\)中,按某一准则选取出供分类用的子集,作为降维(\(m\)维,\(m \lt n\))的分类特征
特征提取:使\((x_1,x_2,\cdots,x_n)\)通过某种变换,产生\(m\)个特征\((y_1,y_2,\cdots,y_m)(m \lt n)\),作为新的分类特征,或称为二次特征
特征选择和特征提取的目的都是为了在尽可能保留识别信息的前提下,降低特征空间的维数,以达到有效的分类
模式类别可分性的测度
点与点之间的距离
在\(n\)维空间中,\(a,b\)两点之间的欧式距离为:
写成距离平方:
其中\(a,b\)是\(n\)维向量,其第\(k\)个分量分别是\(a_k,b_k\)
点到点集之间的距离
在\(n\)维空间中,点\(x\)到点\(a^{(i)}\)之间的距离平方为:
因此,点\(x\)到点集\(\{a^{(i)}\}_{i = 1,2,\cdots,K}\)之间的均方距离为:
类内距离
\(n\)维空间中同一类内各模式样本点集\(\{a^{(i)}\}_{i = 1,2,\cdots,K}\),其内部各点的均方距离为\(\overline{D^2(\{a^{(j)},\},\{a^{(i)}\})}\),其中\(i,j = 1,2,\cdots,K,i\neq j\),即:
可以证明:
类内散布矩阵
考虑一类内模式点集\(\{a^{(i)}\}_{i = 1,2,\cdots,K}\),其类内散布矩阵为:
其中:
对属于同一类的模式样本,类内散布矩阵表示各样本点围绕其均值周围的散布情况
类间距离和类间散布矩阵
在考虑有两个以上的类别,如集合\(\{a^{(i)}\},\{b^{(j)}\}\)时,类间距离对类别的可分性起着重要作用,此时应计算:
为简化起见,常用两类样本各自质心间的距离作为类间距离,并假设两类样本出现的概率相等,则:
其中\(m_1,m_2\)为两类模式样本集各自的均值向量,\(m_{1_k},m_{2_k}\)为第\(k\)个分量,\(n\)为维数
写成矩阵形式:
上式为两类模式的类间散布矩阵,对于三个以上的类别,类间散布矩阵常写成:
其中\(m_0\)是多类模式\(c\)类分布的总体均值向量,即:
多类模式集散布矩阵
多类情况的类内散布矩阵,可写成各类的类内散布矩阵的先验概率的加权和,即:
其中\(C_i\)是第\(i\)类的协方差矩阵
有时,用多类模式总体分布的散布矩阵来反映其可分性,即:
\(S_t = E\{(x - m_0)(x - m_0)^T\},x \in \forall w_i,i = 1,2,\cdots,c\),其中\(m_0\)为多类模式分布的总体均值向量。可以证明\(S_t = S_w + S_b\),即总体散布矩阵是各类类内散布矩阵与类间散布矩阵之和
特征选择
从\(n\)个度量值集合\(\{x_1,x_2,\cdots,x_n\}\)中,按某一准则选取出供分类用的子集,作为降维(\(m\)维,\(m \lt n\))的分类特征,特征选择的准则为:使不同类别模式特征的均值向量之间的距离最大,而属于同一类的模式特征,其方差之和应最小,假设各原始特征是统计独立的,此时只需要对训练样本的\(n\)个测量值独立的进行分析,从中选出\(m\)个最好的作为分类特征即可,下面以对于\(w_i,w_j\)两类训练样本的特征选择为例:
对于\(w_i,w_j\)两类训练样本,假设其均值向量为\(m_i,m_j\),其\(k\)维方向的分量为\(m_{ik},m_{jk}\),方差为\(\sigma_{ik}^2,\sigma_{jk}^2\),定义可分性准则函数:
则\(G_K\)为正值,\(G_K\)值越大,表示测度值的第\(k\)个分量对分离\(w_i,w_j\)两类越有效,将\(G_K\)按大小排列,选出最大的\(m\)个对应的测度值作为分类特征,此准则函数在类概率密度函数不是或不近似正态分布的时候不再适用,下面是一般特征的散布矩阵准则:
类内:\(S_w = \sum_{i =1}^cP(w_i)E\{(x - m_i)(x - m_i)^T|w_i\} = \sum_{i = 1}^cP(w_i)C_i\)
类间:\(S_b = \sum_{i =1}^cP(w_i)(m_i - m_0)(m_i - m_0)^T\)
直观上,类间离散度越大且类内离散度越小,则可分性越好,因此,可推导出散布矩阵准则采用如下形式:
行列式形式:\(J_1 = det(S_w^{-1}S_b) = \prod_i\lambda_i\)
迹形式:\(J_2 = tr(S_w^{-1}S_b) = \sum_i\lambda_i\)
\(\lambda_i\)为\(S_w^{-1}S_b\)的特征值,使\(J_1,J_2\)最大的子集可作为选择的分类特征
离散K-L变换
之前的特征选择是简单的删掉\(n - m\)个特征,而原来的\(n\)个数据都在不同程度上反映了识别对象的某些特征,如果将原来的特征做正交变换,获得的每个数据都是原来\(n\)个数据的线性组合,然后从新的数据中选出少数几个,使其尽可能的反映各类模式之间的差异,而这些特征间又尽可能的相互独立,则比单纯的选择方法更灵活,K-L变换(Karhunen-Loeve变换)就是一种适用于任意概率密度函数的正交变换,下面是离散的有限K-L展开式的形式:
设一连续的随机实函数\(x(t),T_1 \leq t \leq T_2\),则\(x(t)\)可用已知的正交函数集\(\{\phi_j(t),j = 1,2,\cdots\}\)的线性组合来展开,即:
其中,\(a_j\)为展开式的随机系数,\(\phi_j(t)\)为一连续的正交函数,满足:
\(\tilde{\varphi}_m(t)\)表示的是共轭复数式,将上式写成离散形式:使连续随机函数\(x(t)\)和连续正交函数\(\phi_j(t)\)在区间\(T_1 \leq t \leq T_2\)内被等间隔采样为\(n\)个离散点,即:
写成向量形式:
得到离散展开式:
其中\(a\)为展开式中随机系数的向量形式:
\(\Phi\)为\(n \times n\)矩阵,即:
如果对\(c\)中模式类别\(\{w_i\}_{i = 1,\cdots,c}\)做离散正交展开,则对每一模式可分别写成\(x_i = \Phi a_i\),对于各个模式类别,正交函数都是相同的,但其展开系数向量\(a_i\)不同,K-L展开式的根本性质是将随机向量\(x\)展开为另一组正交向量\(\varphi_j\)的线性和,下面是正交向量集\(\{\varphi_j\}\)的确定:
设随机向量\(x\)的总体相关矩阵为\(R = E\{xx^T\}\),由:
将上式代入自相关矩阵得:
要求向量\(a\)的不同分量统计独立:
写成矩阵形式:
则有:
由于\(\Phi\)的各个分量\(\phi_j\)都相互正交,所以:
\(\phi_j\)对应为:
可以看出,\(\lambda_j\)是\(x\)的自相关矩阵\(R\)的特征值,\(\phi_j\)是对应的特征向量,K-L展开式系数为:
下面总结一下K-L展开式系数的计算步骤:
- 求随机向量\(x\)的自相关矩阵:\(R = E\{xx^T\}\)
- 求出矩阵\(R\)的特征值\(\lambda_j\)和对应的特征向量\(\Phi_j,j = 1,2,\cdots,n\),得矩阵:
- 计算展开式系数:
K-L展开式用于特征选择相当于一种线性变换,若从\(n\)个特征向量中取出\(m\)个组成变换矩阵\(\Phi\),即:
此时,\(\Phi\)是一个\(n \times m\)维矩阵,\(x\)是\(n\)维向量,经过\(\Phi^T x\)变换,即得到降维为\(m\)的新向量,接下来的问题是如何选取变换矩阵\(\Phi\),使得降维后的新向量在最小均方差条件下接近原来的向量\(x\),对于\(x = \sum_{j = 1}^na_j\phi_j\),现在仅取\(m\)项,对略去的系数项用预先选定的常数\(b\)代替,此时对\(x\)的估计值为:
则产生的误差为:
\(\Delta x\)的均方误差为:
要使均方误差最小,对\(b\)的选择应满足:
因此:
也就是省略掉的\(a\)中的分量应该使用它们的数学期望来代替,此时的误差为:
其中,\(C_x\)为\(x\)的协方差矩阵,设\(\lambda_j\)是\(C_x\)的第\(j\)歌特征值,\(\phi_j\)是与\(\lambda_j\)对应的特征向量,则:
由于:
从而:
所以:
也就是省略掉的系数项对应的\(\lambda_j\)越小,误差也越小
在进行特征提取之前,需要确保\(E[a_j] = 0\),因为\(E(a] = E[\phi^Tx] = \phi^TE[x]\),所以也就是计算\(x\)的均值是不是为0,在进行K-L变换之前需要现将其均值作为新坐标轴的原点,如果均值不为0,那么只能得到次最佳的结果
将K-L展开式系数\(a_j\)(也就是变换之后的特征)用\(y_j\)表示,写成向量形式\(y=\phi^Tx\),此时变换矩阵\(\phi\)用\(m\)个特征向量组成,为了使均方误差最小,根据上面的推导,不采用的特征向量,其对应的特征值应该尽可能小,通过K-L变换能获得互不相关的新特征,若采用较大特征值对应的特征向量组成变换矩阵,则能对应的保留原模式中方差最大的特征成分,所以K-L变换起到了减小相关性,突出差异性的效果,K-L变换也称为主成分变换PCA变换