我尝试使用主成分分析(PCA)进行特征选择,从九个特征(绿色均值、绿色方差、绿色标准差、红色均值、红色方差、红色标准差、色调均值、色调方差、色调标准差,即 [ MGcorr,VarGcorr, stdGcorr,MRcorr,VarRcorr,stdRcorr,MHcorr,VarHcorr,stdHcorr ])中选出了四个最优特征,用于将数据分类为两个簇。根据文献,PCA似乎不是很好的方法,而应用核主成分分析(KPCA)进行特征选择会更好。我想应用KPCA进行特征选择,并尝试了以下方法:
d=4; % 要选择的特征数量,或d:降维后的维度[Y2 eigVector para ]=kPCA(feature,d); % feature是300X9的矩阵,其中300是观察数量,9是特征数量 % Y:降维后的数据
上述kPCA.m函数可从以下链接下载:http://www.mathworks.com/matlabcentral/fileexchange/39715-kernel-pca-and-pre-image-reconstruction/content/kPCA_v1.0/code/kPCA.m
在上述实现中,我想知道如何从9个特征中找出要选择的4个特征(即哪些顶级特征是最优的)用于聚类。
此外,我还尝试了以下函数来实现KPCA:
options.KernelType = 'Gaussian';options.t = 1;options.ReducedDim = 4;[eigvector, eigvalue] = KPCA(feature', options);
在上述实现中,我也遇到了同样的问题,无法确定从9个特征中选出的4个最佳/最优特征。
上述KPCA.m函数可从以下链接下载: http://www.cad.zju.edu.cn/home/dengcai/Data/code/KPCA.m
如果有人能帮助我实现我的问题的核主成分分析,那将非常好。
谢谢
回答:
PCA本身并不提供最优特征。它提供的是一组不相关的新的特征。当你选择“最佳”的4个特征时,你选择的是方差最大的特征(最大的特征值)。因此,对于“普通”的PCA,你只需选择对应于4个最大特征值的4个特征向量,然后通过矩阵乘法将原始的9个特征投影到这些特征向量上。
从你提供的核主成分分析函数的链接来看,返回值Y2
似乎是原始数据转换为核-PCA空间的前d
个特征,因此转换已经为你完成。