728x90

차원 축소

머신러닝에서 중요하지 않은 부분인 노이즈를 제거할 때 차원축소를 사용함
비지도 학습적 접근 방법: 주성분 분석(Principal Component Analysis)
지도 학습적 접근 방법: 선형 판별 분석(Linear Discriminant Analysis)

차원의 저주(curse of dimensionality): 데이터의 차원이 커질 수록 해당 차원을 표현하기 위해 필요한 데이터가 기하 급수적으로 많아짐

주성분 분석

PCA는 여러 피처가 통계적으로 서로 상관관계가 없도록 변환시키는 방법

주성분 분석은 피처 간 상관관계를 기반으로 데이터의 특성을 파악
데이터 셋의 공분산 행렬에서
고윳값: 고유벡터의 크기이며 분산의 크기를 의미
고유 벡터는 분산의 방향을 의미
분산이 큰 고유 벡터에 기존 데이터를 투영해 얻은 벡터는 주성분 벡터라고 함

  1. 데이터 셋 준비
  2. 데이터 셋을 피처별로 표준화(평균 빼고 분산으로 나누기)
  3. 피처 데이터의 공분산 행렬 구하기
  4. 2에서 구한 공분산 행렬의 고윳값, 고유 벡터 구하기
  5. 고윳값을 큰 순서대로 내림차순 정렬
  6. d차원으로 줄이고 싶은 경우, 크기 순서대로 d개의 고윳값 선정
  7. 5에서 선정한 고윳값에 대응하는 고유 벡터로 새로운 행렬 생성
  8. 0에서 준비한 오리지널 데이터를 6에서 만든 새로운 공간으로 투영

공분산 행렬의 고윳값과 고유 벡터는 특이값분해를 통해 행렬을 분해하면 됨
고윳값은 데이터의 흩어짐 정도의 크기로

lambdai는 고윳값이고, 그 값 p개를 전부 더하면 전체 데이터 셋의 변동성이 됨
여기서 데이터를 2차원으로 줄이겠다고 한다면 lambda1 + lambda2가 분자에 있는 것임
그것이 0.94면 p차원 데이터를 2차원으로 줄였을 때 전체 변동성의 94%가 설명가능하다는 의미

커널 PCA

기존 주성분 분석 -> 데이터 행렬 X의 공분산 행렬을 고윳값 분해한 후에 고유 벡터를 새로운 좌표축으로 할당하는 방법
이 새로운 좌표축에 해당하는 고유 벡터 = 주성분(principal component)
기존 데이터 포인트를 주성분에 직교 정사영하는 방법 사용

반대로
커널 pca는 기존 pca를 일반화 한 방법으로 비선형적으로 수행

기존 데이터 행렬X를 고차원으로 매핑시킴
고차원 매핑함수: 파이

새로운 공간의 데이터 포인트에 대한 공분산 행렬

새로운 공간으로 이동한 데이터 포인트 = phi(xi)
마지막에는 증강된 공간의 데이터를 다시원래 공간으로 매핑시키면 곡선 형태를 띈 주성분 측으로 변환됨

LDA

선형 판별 분석(Linear Discriminant Analysis, LDA): 지도학습적 접근 방법을 통한 차원 축소 알고리즘
데이터 셋의 기존 공간으로부터 집단 간 분산과 집단 내 분산의 비율을 최대화하는 기존 공간보다 더 작은 차원의 공간으로 원래 데이터를 투영시킴으로써 차원 축소

LDA는 3단계 과정 (집단 간 거리 계산, 각 집단의 평균과 각 데이터 포인트 거리를 계산, 기존 데이터 셋의 공간보다 더 작은 차원의 공간 생성)

  1. 집단 간 분산 구하기
    데이터 셋 전체 평균 와 i번째 집단에 속하는 데이터의 평균 의 차이
  2. 집단 내 분산
  3. 더 작은 차원의 공간

Class-Dependent LDA
하나의 부분 공간은 각 집단으로 계산
고윳값 고유 벡터 또한 각 변환 행렬로 따로 구함
각 집단 데이터 포인트들은 그들에 대응하는 고유 벡터에 투영

  1. 피처 데이터 행렬 나타내기

  2. 각 집단의 평균 구하기

  3. 전체 데이터 평균 mu 구하기

  4. 집단 간 분산 구하기

  5. 집단 내 분산 구하기

  6. 변환 행렬 의 고윳값, 고유 벡터 계산

  7. 고윳값을 큰 순서대로 정렬하고, 첫 k개의 고유 벡터는 더 작은 차원의 새로운 공간 Vk를 의미

Class-Independent LDA
클래스 구분 없이 모든 클래스에 대해 변환 행렬 계산

  1. 피처 데이터 행렬 나타내기
  2. 각 집단의 평균 muc 구하기
  3. 전체 데이터 평균 mu 구하기
  4. 집단 간 분산 구하기
  5. 각 집단에 대해 집단 내 공분산 행렬을 계산
  6. 각 집단의 변환 행렬 wi를 계산
  7. 집단 별 변환 행렬 Wi에 대해 고윳값, 고유 벡터 계산
  8. 고윳값이 큰 순서대로 정렬
  9. 각 집단에 속하는 데이터 포인트는 기존의 공간보다 더 작은 공간 에 투영

LLE

Locally Linear Embedding: 각 데이터 포인트의 이웃 데이터 중 K개 이웃 데이터를 선정하고 자신과 K개의 이웃 데이터를 마치 하나의 덩어리라고 가정하고 데이터를 재구성
LLE의 목적은 재구성 에러 함수를 최소화 하는 것
LLE 차원 축소는 데이터 주변의 이웃 관계를 유지하면서 새로운 공간에 투영하는 것이 중요

비음수 행렬 분해

Non-negative Matrix Factorization, NMF는 데이터 행렬 내 모든 원소값이 0보다 큰 경우에 사용할 수 있는 행렬 분해 방법
X=UV
데이터 행렬 X가 주어질 때 U, V를 찾는 알고리즘

X (nxp)면 U는 (nxd) V는 dxp

비용 함수
비음수 행렬 분해에서는 euclidean distance를 비용함수로 사용

반응형