수색…


주요 구성 요소 분석을 사용하여 차원 축소

주성분 분석 은 피쳐의 선형 조합 시퀀스를 찾습니다. 첫 번째 선형 조합은 피쳐의 분산을 최대화합니다 (단위 구속 조건 적용). 다음의 각 선형 조합은 이전 선형 조합에 걸친 것과 직각 인 부분 공간에서 형상의 분산을 최대화합니다.

공통 치수 감소 기술은 k 번째의 그러한 선형 조합만을 사용하는 것이다. 피쳐가 n 행과 m 열의 행렬 X 라고 가정합니다. 제 1 k 선형 조합은 m 행 및 k 열의 행렬 βk 를 형성한다. 곱 n 행과 k 열을 갖는다. 따라서 결과 행렬 β k 는 원래 행렬 X 의 고 분산 부분을 유지하면서 m 에서 k 차원으로의 축소로 간주 될 수 있습니다.

scikit-learn , PCA는 sklearn.decomposition.PCA 로 수행됩니다. 예를 들어, 분산이 첫 번째 두 열에 만 포함되도록 구성된 (마지막 5 개의 열을 축소하여) 100 X 7 행렬로 시작한다고 가정합니다.

import numpy as np
np.random.seed(123) # we'll set a random seed so that our results are reproducible
X = np.hstack((np.random.randn(100, 2) + (10, 10), 0.001 * np.random.randn(100, 5)))

2 차원으로 축소 해 봅시다.

from sklearn.decomposition import PCA
pca = PCA(n_components=2)
pca.fit(X)

이제 결과를 확인해 봅시다. 첫째, 선형 조합이 있습니다.

pca.components_
# array([[ -2.84271217e-01,  -9.58743893e-01,  -8.25412629e-05,
#           1.96237855e-05,  -1.25862328e-05,   8.27127496e-05,
#          -9.46906600e-05],
#        [ -9.58743890e-01,   2.84271223e-01,  -7.33055823e-05,
#          -1.23188872e-04,  -1.82458739e-05,   5.50383246e-05,
#           1.96503690e-05]])

각 벡터의 첫 번째 두 구성 요소가 다른 구성 요소보다 몇 배 더 크기 때문에 PCA가 분산이 주로 처음 두 열에 포함되어 있음을 알 수 있습니다.

이 PCA가 설명하는 분산의 비율을 확인하기 위해 pca.explained_variance_ratio_ 를 검토 할 수 있습니다.

pca.explained_variance_ratio_
# array([ 0.57039059,  0.42960728])


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow