Data scientist/Machine Learning

PCA + Python_Code

맨사설 2021. 8. 23. 16:09
728x90

◎ 차원의 저주

  • 차원이 커질수록 한정된 자료는 커진 차원의 패턴을 잘 설명하지 못한다.
  • 차원이 증가함에 따라 model complexity가 기하급수적으로 높아진다.
  • 주성분분석(PCA)은 서로 상관관계를 갖는 많은 변수를 상관관계가 없는 소수의 변수로 변환하는 차원축소 기법

 

 

 

◎ 공분산 행렬(Covariance matrix)의 정의

  • 공분산 행렬은 일종의 행렬로써, 데이터의 구조를 설명해주며, 특히 특징 쌍(feature pairs)들의 변동이 얼마나 닮았는가(다른 말로는 얼마만큼이나 함께 변하는가)를 행렬에 나타내고 있다.

2차원 공분산 행렬 각 원소들의 의미

 

 

 

◎ Principal Components

  • 차원을 줄이면서 정보의 손실을 최소화하는 방법
  • 변환에 사용하는 소수의 변수를 주성분(Principal component) 또는 성분(component)이라고 함

 

☆ PC를 얻어내는 것

  • 공분산이 데이터의 형태를 변형시키는 방향의 축과 그것에 직교하는 축을 찾아내는 과정

 

 

◎ PCA 수학적 개념 이해

ⓐ 행렬식(determinant), det(A) 구하기

 

ⓑ Eigen value

 

ⓒ Singular Value Decomposition (SVD)

 

◎ PCA 수행 과정

  1. Mean centering
  2. SVD 수행
  3. SVD 결과를 활용하여 공분산의 eigen vector, eigen value 구하기
  4. PC score 구하기
  5. PC score를 활용하여 분석 진행

 

 

 

◎ Kernel PCA

  • 관측치 사이의 패턴이 존재하는 것으로 보이나, 변수 간의 선형 관계가 아닐 때
  • K (Kernel matrix)는 관측치 사이의 유사도 개념
  • 비슷한 관측치일수록 큰 값(서로 이질적인 관측치일수록 작은 값)

 

728x90

'Data scientist > Machine Learning' 카테고리의 다른 글

K-NN + Python_Code  (0) 2021.08.25
Naive Bayes + Python_Code  (0) 2021.08.25
회귀분석(4)_로지스틱 회귀분석  (0) 2021.08.21
회귀분석(3)_변수선택법 Code  (0) 2021.08.21
회귀분석(2)_Code  (0) 2021.08.19