擅长:python、mysql、java
<p>如果你认为你需要1000个主成分,你应该重新考虑你的降维选择。如果你有那么多,那么你就不再具有可解释性,所以你可以使用其他更灵活的降维算法(例如变分AUTCENCOLDER、t-sne、内核PCA)。主成分分析的一个主要优点是主成分的可解释性。在</p>
<p>如果您有相同地方的视频流,那么您应该可以使用<;10个组件(尽管主组件跟踪可能更好)。此外,如果您的图像数据集不包含类似的ish图像,那么PCA可能不是正确的选择。在</p>
<p>另外,对于图像,非负矩阵分解(NMF)可能更适合。对于NMF,可以执行随机梯度优化,对每个梯度步进的像素和图像进行二次采样。在</p>
<p>然而,如果你仍然坚持执行PCA,那么我认为Facebook提供的随机解算器是你最好的选择。运行<code>pip install fbpca</code>并运行以下代码</p>
<pre><code>from fbpca import pca
# load data into X
U, s, Vh = pca(X, 1000)
</code></pre>
<p>如果不使用一些矩阵结构,例如稀疏性或块组合(你的数据集不太可能有这种结构),就不可能获得比这更快的速度。在</p>
<p>另外,如果您需要帮助来选择正确数量的主要组件,我建议使用以下代码</p>
^{pr2}$
<p>当然,上面的代码不支持交叉验证,您应该使用交叉验证来选择正确数量的组件。在</p>