Python의 PCA 주성분 분석(차원 축소) 기술
PCA(주성분 분석) 주성분 분석은 매우 일반적으로 사용되는 데이터 차원 축소 기술입니다. 데이터는 PCA 알고리즘을 통해 처리되어 데이터의 고유한 특성을 발견하고 후속 데이터 분석 및 모델링을 위해 보다 정확하고 효과적인 데이터 수집을 제공할 수 있습니다.
아래에서는 Python에서 PCA 주성분 분석을 사용하는 몇 가지 기술을 소개합니다.
PCA 차원 축소 분석을 수행하기 전에 먼저 데이터를 정규화해야 합니다. PCA 알고리즘은 단순히 요소 값의 크기를 계산하는 것이 아니라 분산 최대화를 통해 주성분을 계산하기 때문에 각 요소의 해당 분산이 미치는 영향을 충분히 고려하기 때문입니다.
Python에는 데이터 정규화 방법이 많이 있습니다. 가장 기본적인 방법은 sklearn 라이브러리의 StandardScaler 클래스를 통해 데이터를 평균이 0이고 분산이 1인 표준 정규 분포로 표준화하는 것입니다. data_std가 정규화된 데이터 세트입니다.
차원 축소를 위해 PCA 사용from sklearn.preprocessing import StandardScaler scaler = StandardScaler() data_std = scaler.fit_transform(data)
그 중 data_pca는 PCA 차원 축소 처리 후 새 데이터를 반환합니다.
차원 축소 후 주성분 수 선택 방법누적 분산 기여율은 전체 분산에 대한 처음 n개 주성분의 분산 합계의 백분율을 나타냅니다. 예:
from sklearn.decomposition import PCA pca = PCA(n_components=2) data_pca = pca.fit_transform(data_std)
누적 분산 기여율 그래프를 그리면 누적 분산이 증가하는 것을 관찰할 수 있습니다. 주성분 수가 1에서 점차 증가하는 경우 기여율의 변화 추세를 이용하여 적절한 주성분 수를 추정할 수 있습니다. 코드는 다음과 같습니다.
import numpy as np pca = PCA() pca.fit(data_std) cum_var_exp = np.cumsum(pca.explained_variance_ratio_)
그림의 빨간색 선은 누적 분산 기여율을 나타내고, x축은 주성분 수, y축은 설명된 분산의 비율을 나타냅니다. 처음 두 주성분의 분산 기여율이 1에 가깝다는 것을 알 수 있으므로 두 주성분을 선택하면 대부분의 분석 작업 요구 사항을 충족할 수 있습니다.
PCA 차원 축소 후 데이터를 시각화하는 방법import matplotlib.pyplot as plt plt.bar(range(1, 6), pca.explained_variance_ratio_, alpha=0.5, align='center') plt.step(range(1, 6), cum_var_exp, where='mid') plt.ylabel('Explained variance ratio') plt.xlabel('Principal components') plt.show()
그림의 색상과 레이블은 각각 시각적 차원 이후의 원본 데이터의 숫자 레이블에 해당합니다. 감소, 데이터를 통해 데이터의 구조와 특성을 더 잘 이해할 수 있습니다.
즉, PCA 주성분 분석 기술을 사용하면 데이터의 차원을 줄여 데이터의 구조와 특성을 더 잘 이해할 수 있습니다. Python의 sklearn 및 matplotlib 라이브러리를 통해 PCA 알고리즘을 매우 편리하게 구현하고 시각화할 수 있습니다.
위 내용은 Python의 PCA 주성분 분석(차원 축소) 기술의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!