2016-06-16 15 views
0

データセットでPCAを実行していました。最適なPCAの数を見つけるために、PCAの数として機能の数を使用しました。しかし、説明した分散率を見ると、PCAの数が変化していることがわかりました。コンポーネント= 300の#でPCAを行った後、私は戻って300 PCAのとそれに対応する分散比を取得する必要がありますが、私は200なぜPCAの数が変更されたのですか?

コードを得ましたので、もともと、データセットは、* 300 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_ 

私はちょうど理由を考え出したので、以下の質問に答えます。

答えて

3

これは、実際にdue to the built-in setting of PCA in sklearnです:

n_components:int型、Noneまたは維持するための部品の列数。 n_componentsが設定されていない場合

は、すべてのコンポーネントが保持される。n_components ==分(n_samples、n_features)我々のデータセットは、その機能より少ないサンプルを有する場合

したがって、PCAは自動的にサンプル数が選択コンポーネントの数。

関連する問題