sklearn.pca公司()和nèu分量,线性代数dilemm

2024-05-13 00:53:42 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我想在使用sklearn在Python3中进行PCA时找到最佳的组件数。你知道吗

在验证模型时,我会迭代一些n_components并计算每个值的总绝对预测误差。你知道吗

我的问题是,传递一个n_components参数到PCA和从那里开始有什么区别,而不是不传递它,只使用它得到的隐式最大值的第一个(i)分量。你知道吗

我的线性代数有点不稳定,但是如果我没记错的话,在两种情况下,单个向量应该是相同的,并且按升序排列,并且提供相同数量的解释方差。你知道吗

很抱歉,我没有提供任何代码,也没有亲自编写这两个场景来测试它们,但我坐了很长时间的火车,我的笔记本电脑电池在中途用完了。现在我被好奇心困住了。你知道吗


Tags: 模型参数数量情况components组件sklearn向量
1条回答
网友
1楼 · 发布于 2024-05-13 00:53:42

你对PCA的记忆是正确的。每个部件的奇异值相同。你知道吗

考虑下面的思维实验。 您有少量功能。拟合一个完整的PCA并迭代以找到n_components的值,从而为您的估计器/分类器创建最佳转换是很简单的。 现在您的数据中有1000个特征。10,000? 100,000? 1,000,000? 看到我要去哪里了吗?一个完整的主成分分析这样的数据将是既轻浮和计算昂贵。这是在迭代找到最佳变换之前。你知道吗

一种常见的做法是设置PCA来解释90%的方差(n_components-.9),这有助于避免这种情况,同时仍然提供有价值的输出。你知道吗

另一个选项是使用^{}并输入要测试的n_components的值列表。请注意,这种方法还需要使用^{}来构造一个对象,该对象将在网格中给定点的训练数据上同时适合PCA和估计器/分类器。你知道吗

作为旁白,我将指出,主成分分析并不总是最好的选择,当谈到降维,因为有情况下,低方差主成分是高预测值。有一些现有的交叉验证问题很好地涵盖了这一点。Examples of PCA where PCs with low variance are “useful”Low variance components in PCA, are they really just noise? Is there any way to test for it?

相关问题 更多 >