2016-06-16 2 views
0

데이터 세트에서 PCA를 수행하고있었습니다. 최적의 PCA 수를 찾기 위해 PCA 수만큼 기능 수를 사용했습니다. 그러나 설명 된 분산 비율을 살펴보면 PCA 수가 변경된 것으로 나타났습니다. 원래 데이터 세트는 * 300 (200), 그래서 구성 요소 # = 300 PCA를 수행 한 후, 나는 300 PCA의 및 해당 분산 비율 돌아 가야한다,하지만 난왜 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_ 

방금 ​​이유를 알아 냈으므로이 질문에 아래에서 답할 것입니다.

답변

3

이 실제로 due to the built-in setting of PCA in sklearn입니다 :

n_components : INT, 없음 또는 유지하는 구성 요소의 문자열 수. n_components이 설정되지 않은 경우

모든 구성 요소가 유지되어 n_components == 분 (N_SAMPLES, n_features) 우리 셋 그 특징보다 더 적은 샘플을 갖는 경우

따라서, PCA 자동로서 샘플의 수를 선택 구성 요소의 수.

관련 문제