반응형
    
    
    
  주성분 (k)의 수를 선택할 때, 예를 들어 분산의 99 %가 유지되도록 k를 가장 작은 값으로 선택합니다.
그러나 Python Scikit 학습에서  pca.explained_variance_ratio_ = 0.99 가 "변량의 99 %가 유지됨"과 동일한 지 100 % 확신하지 못합니까? 누구든지 깨달을 수 있습니까? 감사.
해결 방법
네, 거의 맞습니다.  pca.explained_variance_ratio _  매개 변수는 각 차원에서 설명하는 분산 벡터를 반환합니다. 따라서  pca.explained_variance_ratio_ [i] 는 i + 1 번째 차원으로 만 설명되는 분산을 제공합니다.
아마도  pca.explained_variance_ratio_.cumsum () 을 원할 것입니다. 그러면  x [i] 가 첫 번째 i + 1 차원으로 설명되는  누적  분산을 반환하는 벡터  x 가 반환됩니다.
import numpy as np
from sklearn.decomposition import PCA
np.random.seed(0)
my_matrix = np.random.randn(20, 5)
my_model = PCA(n_components=5)
my_model.fit_transform(my_matrix)
print my_model.explained_variance_
print my_model.explained_variance_ratio_
print my_model.explained_variance_ratio_.cumsum()
[ 1.50756565  1.29374452  0.97042041  0.61712667  0.31529082]
[ 0.32047581  0.27502207  0.20629036  0.13118776  0.067024  ]
[ 0.32047581  0.59549787  0.80178824  0.932976    1.        ]
따라서 내 임의의 장난감 데이터에서  k = 4 를 선택하면 분산의 93.3 %를 유지합니다.
참조 페이지 https://stackoverflow.com/questions/32857029
반응형
    
    
    
  '파이썬' 카테고리의 다른 글
| 파이썬 numpy with python : 3d 배열을 2d로 변환 (0) | 2020.11.16 | 
|---|---|
| 파이썬 Python 3에서 16 진수 문자열 디코딩 (0) | 2020.11.16 | 
| 파이썬 C ++ 개발자를위한 Python (0) | 2020.11.16 | 
| 파이썬 boto3를 사용하여 ec2 인스턴스를 생성하는 방법 (0) | 2020.11.16 | 
| 파이썬 C / C ++에서 파이썬 메서드 호출 및 반환 값 추출 (0) | 2020.11.16 | 
댓글