假设我想在使用sklearn在Python3中进行PCA时找到最佳的组件数。你知道吗
在验证模型时,我会迭代一些n_components
并计算每个值的总绝对预测误差。你知道吗
我的问题是,传递一个n_components
参数到PCA
和从那里开始有什么区别,而不是不传递它,只使用它得到的隐式最大值的第一个(i)分量。你知道吗
我的线性代数有点不稳定,但是如果我没记错的话,在两种情况下,单个向量应该是相同的,并且按升序排列,并且提供相同数量的解释方差。你知道吗
很抱歉,我没有提供任何代码,也没有亲自编写这两个场景来测试它们,但我坐了很长时间的火车,我的笔记本电脑电池在中途用完了。现在我被好奇心困住了。你知道吗
你对PCA的记忆是正确的。每个部件的奇异值相同。你知道吗
考虑下面的思维实验。 您有少量功能。拟合一个完整的PCA并迭代以找到
n_components
的值,从而为您的估计器/分类器创建最佳转换是很简单的。 现在您的数据中有1000个特征。10,000? 100,000? 1,000,000? 看到我要去哪里了吗?一个完整的主成分分析这样的数据将是既轻浮和计算昂贵。这是在迭代找到最佳变换之前。你知道吗一种常见的做法是设置PCA来解释90%的方差(
n_components-.9
),这有助于避免这种情况,同时仍然提供有价值的输出。你知道吗另一个选项是使用^{} 并输入要测试的} 来构造一个对象,该对象将在网格中给定点的训练数据上同时适合PCA和估计器/分类器。你知道吗
n_components
的值列表。请注意,这种方法还需要使用^{作为旁白,我将指出,主成分分析并不总是最好的选择,当谈到降维,因为有情况下,低方差主成分是高预测值。有一些现有的交叉验证问题很好地涵盖了这一点。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?
相关问题 更多 >
编程相关推荐