데이터 분석 및 기계 학습 분야에서 PCA(주성분 분석)는 일반적으로 사용되는 선형 차원 축소 알고리즘입니다. PCA는 데이터의 주성분을 찾아 데이터의 차원성을 줄여 데이터의 해석 가능성과 계산 효율성을 향상시킵니다. 이 기사에서는 Python 예제를 통해 PCA의 원리와 적용을 설명합니다.
먼저 numpy, matplotlib, pandas, sklearn 등과 같은 Python 관련 라이브러리를 가져와야 합니다.
import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.preprocessing import StandardScaler from sklearn.decomposition import PCA
다음으로 데이터를 로드합니다. 여기서는 세 가지 종류의 붓꽃을 포함하는 표준 분류 및 클러스터링 데이터 세트인 붓꽃 데이터 세트를 사용합니다. pandas 라이브러리의 read_csv() 함수를 사용하여 이 데이터세트를 읽습니다.
data = pd.read_csv('iris.csv')
이제 데이터를 정규화해야 합니다. PCA는 데이터의 공분산 행렬을 기반으로 계산되므로, 데이터의 변화량에 따라 공분산 행렬의 크기와 순서가 결정됩니다. 따라서 PCA 분석을 수행하기 전에 모든 특성의 범위를 동일한 크기로 정규화해야 합니다. 표준화를 달성하기 위해 sklearn의 StandardScaler를 사용할 수 있습니다.
scaler = StandardScaler() data_scaled = scaler.fit_transform(data)
다음으로, numpy의 cov() 메서드를 사용하여 PCA 알고리즘에 대한 입력 역할을 할 데이터의 공분산 행렬을 계산할 수 있습니다.
cov_matrix = np.cov(data_scaled.T)
이제 PCA 클래스를 사용하여 데이터의 주요 구성 요소를 찾을 수 있습니다. 유지할 주성분의 수를 설정할 수 있습니다. 일반적으로 우리는 원래 기능의 수보다 더 적은 수의 주성분을 유지하도록 선택합니다. 이 예에서는 2개의 주요 구성 요소를 유지합니다.
pca = PCA(n_components=2) principal_components = pca.fit_transform(data_scaled)
이제 matplotlib를 사용하여 PCA 결과를 그릴 수 있습니다. 결과 그래프는 2차원 좌표계로 표시되며, 각 붓꽃의 서로 다른 색상은 해당 붓꽃이 속한 종을 나타냅니다. 이 그래픽에서는 다양한 종류의 붓꽃이 서로 다른 방향으로 퍼지는 것을 볼 수 있습니다.
plt.figure(figsize=(8,6)) plt.scatter(principal_components[:,0], principal_components[:,1], c=data['species']) plt.xlabel('Principal Component 1') plt.ylabel('Principal Component 2') plt.show()
이 예를 통해 원리요인 분석의 작동 원리와 적용을 확인할 수 있습니다. PCA는 데이터 시각화, 노이즈 필터링, 특징 추출, 데이터 압축 등 다양한 분야에서 사용할 수 있는 매우 유용한 기술입니다. 따라서 PCA는 데이터 분석 및 기계 학습 분야에서 없어서는 안될 도구입니다.
위 내용은 Python의 주요 요인 분석 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!