【问题标题】:Using PCA on test set which has dimensionality less than number of principal components在维数小于主成分数的测试集上使用 PCA
【发布时间】:2017-10-18 13:02:23
【问题描述】:

我一直在研究一个包含 800 个样本和 5000 个特征的数据集的分类问题。我使用了诸如 PCA 之类的降维技术将维度降低到 120 左右。这是在我对各种主成分进行试验后完成的,并选择了最能捕捉方差的主成分数量。我意识到必须使用训练阶段的相同主成分来转换测试集。但是,我对我的测试集有 100 个样本和 5000 个特征的情况感到困惑。我意识到主成分的数量不能超过 100(在训练阶段选择的少于 120) (https://stats.stackexchange.com/questions/28909/pca-when-the-dimensionality-is-greater-than-the-number-of-samples)

我是否应该确定地估计我的测试集的大小,然后在训练阶段选择我的主要组件?我想知道是否有人可以将我指向文献或任何其他处理类似问题的 stackoverflow 答案。我真的很感激。

【问题讨论】:

  • IIUC,你在测试集和训练集中都有 5000 个特征。所以两者都可以降维到120。

标签: machine-learning pca


【解决方案1】:

只是为了澄清和跟进之前的评论:“数据集的维度约为 800 x 5k”,您的意思是您有一个由 5000 个样本组成的数据集,每个样本有 800 个特征?如果是这样,那么您的测试集应该具有与您的训练数据集相同数量的特征,即 800 个。训练和测试数据集是通过随机拆分样本而不是特征来创建的。

例如,假设您将数据集随机拆分为包含 4000 个样本的训练数据集和包含 1000 个样本的测试数据集。然后,您将在训练数据集上训练 PCA,以将特征数量从 800 个减少到大约 120 个。然后将在训练数据集上学习的 PCA 应用于测试数据集中的 1000 个样本,以减少特征数量800 到 120。

【讨论】:

  • 很抱歉造成误解。我的意思是我的训练集有 800 个样本和 5000 个特征。我的测试集有 100 个样本,具有相似的 5000 个特征。但是,如果我使用降维并将我的数据集减少到 800 个样本和 120 个特征(通过 PCA),我将无法在测试集上做同样的事情,因为样本的数量少于主成分的数量。
  • 在您的测试数据上,您可以将 PCA 组件作为给定的,所以一切都应该正常工作。仅使用测试数据最多只能计算 119 个主成分,但这不是您想要做的。
  • 我意识到我的错误。非常感谢您解决这个问题。
  • 不用担心,很高兴我能帮上忙。
猜你喜欢
  • 2017-04-09
  • 2018-03-23
  • 2012-11-05
  • 1970-01-01
  • 2017-11-02
  • 1970-01-01
  • 2012-12-24
  • 2012-11-10
  • 2017-03-11
相关资源
最近更新 更多