데브허브 | DEVHUB | [머신러닝+딥러닝 기초 강의] 16강. 주성분 분석[머신러닝+딥러닝 기초 강의] 16강. 주성분 분석
- 주성분 분석(PCA)은 비지도 학습의 핵심 애플리케이션 중 하나인 차원 축소의 대표적인 알고리즘입니다. 📉
- '차원'의 개념은 배열/텐서의 축(axis)과 특성 벡터의 원소 개수를 의미하는 두 가지 용도로 사용되며, PCA는 후자(특성 벡터의 차원)를 줄이는 데 중점을 둡니다. ↔️
- PCA는 데이터의 분산이 가장 큰 방향(주성분)을 찾아 데이터를 원점에 맞춘 후 이 주성분에 투영하여 차원을 축소합니다. 🎯
- 두 번째 이후의 주성분은 이전 주성분과 수직이면서 남은 분산이 가장 큰 방향으로 찾아지며, 일반적으로 원본 특성보다 적은 수의 주성분을 사용합니다. 📐
- 사이킷런의
PCA 클래스는 n_components 매개변수로 추출할 주성분 개수를 지정하며, fit(), transform(), inverse_transform() 메서드를 제공합니다. 🛠️
- PCA를 통한 차원 축소는 데이터 저장 공간을 절약하고, 모델 훈련 속도를 크게 향상시키며(예: 로지스틱 회귀 훈련 시간 0.74초에서 0.02초로 단축), 원본 데이터의 정보 대부분을 유지할 수 있습니다. ⚡
n_components를 실수(예: 0.5)로 지정하여 설명된 분산의 비율을 기준으로 주성분 개수를 자동으로 선택할 수도 있습니다. 📊
explained_variance_ratio_ 속성은 각 주성분이 설명하는 분산의 비율을 나타내며, 이를 통해 적은 수의 주성분만으로도 원본 데이터의 상당한 정보를 표현할 수 있음을 알 수 있습니다. 💡
- PCA는 고차원 데이터를 2D 또는 3D로 시각화하여 데이터의 구조(예: 군집, 분류 가능성)를 이해하는 데 큰 도움을 줍니다. 🖼️
- 차원 축소된 데이터는 군집(K-평균)이나 분류(로지스틱 회귀)와 같은 다른 머신러닝 알고리즘과 함께 사용하여 성능을 유지하면서 효율성을 높일 수 있습니다. 🤝