Cute Running Puppy

빅데이터분석

빅데이터분석(2) - PCA

jwjin 2025. 3. 20. 17:44
728x90

- 차원 축소

-차원의 저주

  • 차원이 증가하면서(차원은 변수의 개수와 같음) 문제 공간이 지수적으로 커지는 현상
    • 용량이 커진다? -> 더 많은 메모리 필요
    • 관측치보다 변수 수가 많아짐 -> 모델의 성능 저하
    • 데이터 사이의 거리가 멀어지고 빈공간이 생김 -> sparsity 문제 발생
    • 즉, 차원이 커질 수록 공간은 많이 필요하면서 사용할 수 있는 정보량은 상대적으로 작아지는 현상 발생
  • 차원 축소(=변수를 줄인다)는 고차원의 데이터를 저차원의 데이터로 변환하는 방법
    • 차원 : 데이터 분석에 사용되는 변수의 개수
    • 즉, 사용되는 변수를 줄이는 방법
  • 차원 축소를 하는 이유
    • 비용, 시간, 자원, 용량 문제 해결 (차원의 저주)
      • 분석 시간이 증가하며, 불필요한 변수저장에 추가 용량이 필요
    • 과적합 문제 해결
      • 변수가 많으면 모델 복잡도가 증가함
      • 복잡도가 증가함에 따라 민감도가 증가 -> Test 오차가 커질 수 있음
    • 설명력 증가
      • 차원이 낮으면 내부구조 파악 및 해석이 쉬워짐 (시각화를 통해 사람이 이해 가능)
  • 차원 축소의 단점
    • 간소화를 한 만큼 정보의 손실이 있다.

- 대표적인 차원 축소 알고리즘

  • 주성분 분석 (PCA : Principal component analysis)
  • LDA
  • LLE
  • MDS
  • t-SNE (t-distribution Stochastic Neighbor Embedding)

 

- PCA의 중요한 개념들

  1. 정사영/투영 (projection)
  2. 선형변환
  3. 차원축소와 분산
  4. 공분산

- 정사영/투영 (projection)

 

- 분산의 정의

  • 데이터가 퍼져 있는 정도

- 엔트로피(Entropy)

  • 정의 : 물질이 분산되는 정도, 분포가 가지는 정보의 확신도 (=정보량)
  • 정보이론 관점에서 퍼져 있는 정도가 같다면 정보량이 같다는 의미

-차원축소와 분산

  • 두 개 이상의 feature를 합쳐 하나로 만들 때 데이터의 분산을 유지하면 데이터의 특성을 유지할 수 있다.
  • 데이터 간의 분산을 최대로 한다면 정보의 손실을 최소화할 수 있다.

 

- 공분산

  • 정의 : 2개의 확률변수의 선형관계 / 상관정도(correlation)을 나타내는 값
  • 선형 상관관계
    • 두 확률 변수 X,Y가 있을 때
      • X가 증가/감소 할 때 Y가 반드시 증가/감소하는 경향
      • X가 증가/감소 할 때 Y가 반드시 감소/증가하는 경향
      • X의 증가/감소에 상관없이 Y의 데이터가 분포

  • 상관정도와 공분산
    • 상관정도 (Correlation)
      • 변수 X의 값이 x만큼 상승할 때 Y의 값은 어떤 형태를 보일까? (수치화를 시킨 것)
    • 공분산 특성
      • X와 Y가 서로 관계없는 독립사건이라면 공분산은 0이 된다.
      • X가 증가/감소할 때 Y도 증가/감소한다. 이때 공분산은 (>0)이 된다.
      • X가 증가/감소할 때 Y도 감소/증가한다. 이때 공분산은 (<0)이 된다.
  • 공분산 정의

  • 공분산 행렬 (Covariance matrix)
    • 변수들 사이의 공분산을 행렬로 나타낸 것
    • Ex. 변수 X와 Y가 있을 때 공분산 행렬은?

 

- 주성분 분석 개요

  • 분산이 가장 큰 방향으로 첫 번째 축을 생성하여 사영시킴. (첫번째 데이터 feature 생성)
  • 첫 번째 축에 직각이 되는 벡터를 두 번째 축으로 하여 사영시킴. (두번째 데이터 feature 생성)
  • 두 번째 축에 직각이 되는 벡터를 세 번재 축으로 하여 사영시킴. (세번째 데이터 feature 생성)

Q). 첫 번째 축을 어떻게 찾을까?

 

  • 목적
    • 고차원의 데이터를 분산이 최대로 보존되는 저차원의 축 평면으로 투영하여 차원 축소
  • 해결하고자 한 것
    • 분산이 최대로 보존되는 축을 어떻게 찾을 것인가?
  • 방법
    • 입력 데이터들의 공분산 행렬에 대한 고유값 분해, 그 값으로 선형 변환(투영)을 취한다.

 

- 고유값 (Eigenvalue)와 고유벡터 (Eigenvector)

  • 정의
    • 어떤 행렬 A에 대해 상수 λ와 벡터 x가 다음 식을 만족할 때, Ax = λx
    • 이때 λ와 x를 각각 행렬 A의 고유값 및 고유벡터라고 함
  • 고유벡터 (x)
    • 행렬이 벡터의 변화에 작용하는 주축의 방향을 나타냄
    • 공분산 행렬의 고유벡터는 데이터가 어떤 방향으로 분산되어 있는지 나타냄
  • 고유값 (λ)
    • 고유벡터 방향으로 얼마 만큼의 크기로 벡터공간이 늘려지는지를 나타냄
    • 고유값은 여러 해가 존재할 수 있으며 값이 큰 순서대로 고유 벡터를 정렬하면 결과적으로 중요한 순서대로 주성분을 구할 수 있음

 

주성분 분석 - 과정 요약

  1. 데이터 정규화(표준화)
  2. Covariance matrix 계산
  3. Covariance matrix로부터 고유값 계산
  4. 고유 벡터 구하기
  5. 고유벡터를 고유값의 순서대로 나열
  6. 고유벡터를 1에서 구한 기존 데이터에 적용하여 변환
    • 이때 elbow point / 정보량 기준으로 데이터 선택

 

주성분 분석의 한계

  • 데이터의 분포가 비선형일 경우 적용하기가 어려움
    • 대안 : LLE (Locally Linear Embedding)
  • 분류 문제에 대해서 데이터의 범주를 정보를 고려하지 않기 때문에 PCA를 취한뒤 범주 분류가 더 잘되도록 변환되는 것은 아님
    • 대안 : PLS (Partial Least Square)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90