英文:
Getting pca.explained_variance_ratio_ for all components without doing PCA twice
问题
我理解explained_variance_ratio_
可以在PCA中轻松获得,但将受限于来自前n_components
的贡献。我想知道是否可以在所有组件上获得explained_variance_ratio_
,而不必在获得完整特征值后再次进行PCA,因为所有参数都是在获得完整特征值之后派生的。我打算这样做是因为矩阵非常庞大,我希望减少计算时间。
英文:
I understand that explained_variance_ratio_
can be obtained easily using PCA but will be restricted to the contribution from the first n_components
. I was wondering if explained_variance_ratio_
can be obtained for all components without doing PCA twice, after all the parameters are derived after having the full eigen values. This I intend to do as the matrix is huge and I am looking to reduce time in the computation.
答案1
得分: 2
要回答你的问题:
是的,你可以获取所有主成分的explained_variance_ratio_,而不必两次进行PCA。当你执行PCA时,你可以指定要保留的主成分数量。如果你不指定这个数量,PCA将保留所有的主成分。
如果你想在拟合PCA之后减少主成分的数量,你可以这样做,而不必重新拟合PCA。试一下以下方法:
from sklearn.decomposition import PCA
import numpy as np
pca = PCA()
pca.fit(X_train)
现在来打印explained variance ratio:
print(pca.explained_variance_ratio_)
获取前10个主成分的explained variance ratio:
explained_variance_ratio_10 = pca.explained_variance_ratio_[:10]
英文:
To answer your question:
Yes, you can obtain the explained_variance_ratio_ for all components without doing PCA twice. When you perform PCA, you can specify the number of components you want to keep. If you don't specify this number, PCA will keep all the components.
If you want to reduce the number of components after fitting the PCA, you can do so without having to fit the PCA again. Try the folllowing:
from sklearn.decomposition import PCA
import numpy as np
pca = PCA()
pca.fit(X_train)
Now to print explained varience ratio:
print(pca.explained_variance_ratio_)
Get the explained variance ratio for the first 10 components
explained_variance_ratio_10 = pca.explained_variance_ratio_[:10]
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论