确定pca分析中n_components变量的值

时间:2018-05-01 08:45:45

标签: python pca

祝你有个愉快的一天。请帮我。我有一个规范化的文件。该文件包含21个数字列。

我会将pca analysis应用于此文件,如下所示:

pca = decomposition.PCA(n_components=21)
pca_output = pca.fit_transform(pca_matrix)
pca_inverse = pca.inverse_transform(pca_output)

据我所知,我赋给n_components变量的值等于列数。但我不明白的是如何确定n_components变量。

1 个答案:

答案 0 :(得分:1)

这是一个超参数,找到最佳值取决于您对数据的处理方式。让我描述3种可能的用途:

  • 可视化:2或3可能是最明智的选择:)
  • 压缩:这里的目标是简单地减少功能的数量,而不会丢失太多信息。您可以适合所有组件(n_components=None)。然后检查属性explained_variance_ratio_并确定您愿意放弃多少。或者你可以放n_components='mle'并让数据为你决定。
  • 预处理:这里降维是一些管道的第一步(在回归/分类之前)。与压缩相反,您希望将变换后的特征用作监督学习算法的输入。我建议通过GridSearchCV在PCA的n_components和预测模型的超参数上找到最佳的n_components。