算法描述:KFD is equivalent to KPCA plus LDA
名称:KFD - kernel Fisher discriminant; KPCA - kernelprincipal component analysis; LDA - Fisher linear discriminant analysis;
算法功能:KFD is a technique for dimensionalityreduction.
知识储备:核函数几何意义 、LDA 算法、PCA算法、协方差矩阵几何意义(反映样本间的相关性)、特征空间投影几何意义、希尔伯特空间;
算法描述:已知:类别数-C、每类样本数-N、样本特征维数feature_dimension
1)获得扩散矩阵为:N*C 维方阵 M(对称阵), 几何意义:映射到无限维希尔伯特空间 注:所用函数为高斯核函数
2)修正扩散矩阵:M~ = M - IM - MI + IMI ; 注:I为N*C维方阵,元素均为1 /(N*C)
3) 求得M~的特征值eigenvector与特征向量eigenvalue;
4) 特征向量非0个数:dim_reduced, 相应的特征向量矩阵为dim_reduced行N*C列(特征向量为列向量)
5) 获得类间矩阵Sb (b 为 betwine的缩写) : 求得类均值矩阵C行N*C列; 求得总均值1行N*C列 注:Sb为dim__reduced行dim_reduced列
6) 求得类均值和总均值 注:mi - m0 为类均值减总均值C行N*C列
7)求得 (mi - m0)* 特征向量转置(dim_reduced 行 N*C列)再除以sqrt(eigenvalue) 最终得矩阵C行 dim_reduced列, 定义为了Sb_temp
8) Sb_temp^t *sb_temp 得最终Sb矩阵; 注类间协方差矩阵几何意义是:类间几何距离的平方
9 获得类内矩阵Sw(w为within的缩写) : 求得类均值矩阵C行N*C列; 注:Sw为dim__reduced行dim_reduced列
10) 求得类均值和总均值 注:mi -m0 为每类样本特征减该类均值N*C行N*C列
11)求得 (mi - m0)* 特征向量转置(dim_reduced 行 N*C列)再除以sqrt(eigenvalue) 最终得矩阵N*C行 dim_reduced列, 定义为了Swtemp
12) Sw_temp^t * sw_temp 得最终Sw矩阵; 注类内协方差矩阵几何意义是:类内几何距离的平方
13)求Sw矩阵的特征值和特征向量Sw_eigen_vec,特征值Sw_eigen_val
14) Sw_eigen_val正规化 :除以N*C
15)Sw_eigen_val非零个数dimension_range, 零个数 dimension_null = dim_reduced - dimension_range
16) 获取相应的特征向量 sw_eigenvec_range, sw_eigenvec_null
17)sw_eigenvec_null * sb * sw_eigenvec_null 得矩阵Sb_null
18) 求得sb_null的特征值和特征向量sb_null_eigenvec,sb_null_eigenval
19) 求得类均值 * 扩散矩阵的非零特征值对应的特征向量
20)sw_eigenval_null 正规化
21)sb_null_eigenval_valid^t * sb_null_eigenval_valid * sqrt(扩散矩阵特征值) 注:dim_reduced *valid_dimension
22)19)*21) 最终得矩阵C行valid_dimension列