본문 바로가기
Data-driven Methodology/DS (Data Science)

[Data Science] 주성분 분석 (Principal Component Analysis, PCA)

by goatlab 2023. 10. 30.
728x90
반응형
SMALL

주성분 분석 (Principal Component Analysis, PCA)

 

 

주성분 분석 (Principal Component Analysis, PCA)은 가장 널리 사용되는 차원 축소 기법 중 하나로, 원 데이터의 분포를 최대한 보존하면서 고차원 공간의 데이터들을 저차원 공간으로 변환한다.

 

데이터 집합을 새로운 좌표축으로 변환시키는 방법이다. 수 많은 정보의 홍수에서 이를 활용하기 위해 정보 손실을 최소화하면서 차수를 낮출 때 사용하는 방법이다. 정보를 각각 서로 간에 독립인 좌표축 들로 재구성하여, 최소한의 차원으로 최대한의 설명력을 높인다.

 

n_components

 

from sklearn.decomposition import PCA

# PCA 모델을 생성
pca = PCA()

# PCA 모델을 데이터에 fitting
pca.fit(data)

# 누적 설명 분산을 기반으로 주성분의 수를 선택
explained_variance = pca.explained_variance_ratio_
cumulative_explained_variance = np.cumsum(explained_variance)

# 원하는 누적 설명 분산 비율을 설정
desired_variance = 0.95

# 누적 설명 분산이 원하는 비율에 도달할 때까지 주성분의 수를 결정
n_components = np.argmax(cumulative_explained_variance >= desired_variance) + 1

# 선택된 주성분의 수를 출력
print("선택된 주성분의 수:", n_components)

 

표준화

 

먼저, PCA를 적용하기 전에 데이터를 표준화한다. 이후, PCA를 적용하여 주성분의 개수에 따른 설명 가능한 분산의 비율을 계산한다. 설명 가능한 분산의 비율이 90% 이상이 되는 주성분의 개수를 선택한다.

 

from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler

X, y = load_dataset()

X_std = StandardScaler().fit_transform(X)

pca = PCA()
pca.fit(X_std)

cumulative_variance_ratio = np.cumsum(pca.explained_variance_ratio_)
n_components = np.argmax(cumulative_variance_ratio >= 0.9) + 1
728x90
반응형
LIST