scikit-learn
차원 성 감소 (피쳐 선택)
수색…
주요 구성 요소 분석을 사용하여 차원 축소
주성분 분석 은 피쳐의 선형 조합 시퀀스를 찾습니다. 첫 번째 선형 조합은 피쳐의 분산을 최대화합니다 (단위 구속 조건 적용). 다음의 각 선형 조합은 이전 선형 조합에 걸친 것과 직각 인 부분 공간에서 형상의 분산을 최대화합니다.
공통 치수 감소 기술은 k 번째의 그러한 선형 조합만을 사용하는 것이다. 피쳐가 n 행과 m 열의 행렬 X 라고 가정합니다. 제 1 k 선형 조합은 m 행 및 k 열의 행렬 βk 를 형성한다. 곱 Xβ 는 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