主成分分析和特征缩减

Principal component analysis and feature reductions

我有一个由 35 个特征组成的矩阵,我需要减少这些 特征,因为我认为许多变量是相关的。我理解PCA 可以帮助我做到这一点,所以使用 matlab,我计算了:

 [coeff,score,latent] = pca(list_of_features)

我注意到 "coeff" 包含我理解的矩阵(如果我错了请纠正我)左边有高重要性的列,第二列的重要性较低重要性等等。但是,我不清楚“coeff”中的哪一列与我原来的“list_of_features”中的哪一列相关,因此我可以知道哪个变量更重要。

PCA 不会给你原始特征的顺序关系(哪个特征比其他特征更多 'important'),而是给你特征 space 的方向,根据方差排序,从高方差(第一方向,或主成分)到低方差。一个方向一般是你原来的特征的线性组合,所以你不能指望得到单个特征的信息。

您可以做的是放弃一个方向(一个或多个),或者换句话说,将您的数据投射到由主要组件的子集跨越的子space。通常你希望以低方差抛出方向,但这确实是一个取决于你的应用程序的选择。

假设您只想保留前 k 个主成分:

x = score(:,1:k) * coeff(:,1:k)';

但是请注意,pca 将数据居中,因此您实际上得到了数据居中版本的投影。