主成分分析(PCA)转换后结果的列顺序是否按解释方差排序?
sklearn PCA变换结果列顺序问题解答
你的默认假设完全正确,X_transformed的列确实按照对应主成分的解释方差从大到小排序。
原理说明
PCA的transform操作本质是将中心化后的原始特征矩阵,投影到pca.components_存储的正交主成分方向上:
X_transformed的第i列,就是所有样本在pca.components_[i]对应主成分方向上的投影值- 官方文档明确说明
components_数组已按照对应主成分的解释方差降序排列,因此投影得到的X_transformed列顺序和components_顺序完全对应,自然也遵循解释方差从高到低的排序规则
你也可以通过pca.explained_variance_ratio_属性验证:该数组的元素顺序就是各主成分的解释方差占比排序,和X_transformed的列顺序一一对应。这也是为什么做PCA可视化时,直接取X_transformed的前两列/前三列绘制散点图,就能保留原始数据中最多的变异信息,刚好符合你做特征空间可视化的需求。
代码小修正
你给出的示例代码中存在笔误,pca.transfom(X)应为pca.transform(X)。
内容的提问来源于stack exchange,提问作者Kevin Südmersen
相关产品推荐
相关产品推荐

