목차
728x90
반응형
PCA(Principal Component Analysis)
- 고차원 데이터 집합이 주어졌을 때 원래의 고차원 데이터와 가장 비슷하면서 더 낮은 차원 데이터를 찾아내는 방법
- 차원 축소 문제를 해결하는 알고리즘 중 하나
- 선형 회귀와 완전히 다른 알고리즘
- 머신러닝, 데이터마이닝, 통계분석, 노이즈 제거 등 다양한 분야에서 널리 쓰임
수학적 의미
- 데이터가 직교 투영할 때 정과 표면 사이의 거리의 제곱의 합이 최소가 되는 더 낮은 차원의 표면 또는 직선을 찾는 것
- n차원 데이터 -> k차원 데이터로 축소 (k <= n)
- 데이터를 투영할 더 낮은 차원을 찾아 직교 투영
- 투영 오차의 제곱 최소화
선형 회귀와 비교
- 선형 회귀
- 피처 x가 주어진 경우 변수 y의 값 예측
- 점과 직선 사이의 오차 제곱 최소화
- 점과 가설로 예측된 값 사이의 수평축에 수직인 거리에 제곱 평균
- PCA
- 레이블 y는 없고 모든 피처를 동일하게 취급
- 점과 직선 사이의 가장 짧은 거리인 90도로 직교하는 파란색 선분을 최소화
- 점 x와 선 사이의 직교하는 다른 선분은 둘 사이의 최단거리
알고리즘 구현 방식
- 데이터 전처리
- 공분산 행렬 시그마를 벡터화로 구현
- 공분산 행렬을 적용하여 행렬 분할
- 차원 축소 진행
- z방향으로 직교 투영한 값 구함
파라미터 K 결정 방법
- 분산 : 데이터가 평균으로부터 얼마나 떨어져 있는 지를 나타내는 값들의 제곱 평균
- n차원 데이터와 k차원 데이터가 거의 비슷한 분산을 유지할 수 있는 K 값 선택
728x90
반응형
'Python > Analysis' 카테고리의 다른 글
[Analysis] CNN (0) | 2024.04.11 |
---|---|
[Analysis] MLP - 다층 퍼셉트론 (0) | 2024.03.25 |
[Analysis] Machine Learning 이란? (0) | 2023.12.27 |
[Analysis] Naive Bayes를 이용한 데이터 분석 (0) | 2022.11.20 |
[Analysis] scikit-learn 선형회귀분석 (0) | 2022.11.08 |