线性方法:多元特征选择和多元特征转换方法(又可分为主成分分析和因子分析)
1.主成分分析法适用于:原始数据之间存在较高的相关性,变量之间相关性越强,则原始数据之间存在非常大的冗余。
主成分分析在MATLAB中实现:princomp(需提供原始数据集)、pcacov(需提供样本数据间的协方差和相关系数)。
实现:
X = 3+randn(30,1);%randn(30,1)表示随机产生30*1的正太矩阵。 Y = 5+6*X+2*randn(30,1); Z = 8-3*X+4*X.^2+3*randn(30,1); X1 = X(1:15); X2 =X(16:30); Y1 = Y(1:15); Y2 = Y(16:30); Z1 = Z(1:15); Z2 = Z(16:30); B = [X1,X2,Y1,Y2,Z1,Z2]; save B.mat B boxplot(B)%画矩阵B的盒图 stdr = std(B); meanr = mean(B); meanr = repmat(meanr,15,1);%将矩阵meanr的横向复制为15倍,纵向复制为1倍 sr = (B-meanr)./repmat(stdr,15,1); [coefs,scores,variance,t2] = princomp(sr);%主成分分析 I = coefs'*coefs;%?? plot(scores(:,1),scores(:,2),'+');%画图 percent_explained = 100*variance/sum(variance);%???
(至今还未明白这个图)
2.因子分析法
MATLAB中factoran函数实现极大似然公共因子分析。
盒图参考:点击打开链接
princomp可参考:可参考