为什么PCA的数量发生了变化?



我在数据集上进行PCA。为了找到PCA的最佳数量,我将功能数量用作PCA的数量。但是,当我查看解释的差异比率时,我注意到PCA的数量已更改。最初,数据集为200 * 300,因此在使用#组件= 300的PCA后,我应该得到300个PCA及其相应的差异比率,但是我得到了200。

代码在这里:

# Standardize the data
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
# Find the optimal number of PCA 
#pca.explained_variance_ratio_
pca = PCA()
pca.fit(X_train_scaled)
ratios = pca.explained_variance_ratio_

我只是弄清楚了为什么,所以在下面回答这个问题。

这实际上是由于Sklearn中的PCA的内置设置:

n_components:int,none或要保留的组件的字符串号。

如果未设置n_components,所有组件都保留:n_components == min(n_samples,n_features)

因此,当我们的数据集的样本少于其功能时,PCA会自动选择样品数量作为组件数量。

相关内容

  • 没有找到相关文章

最新更新