ECC/Machine Learning Team 5 (2024-2)

[6] 차원 축소

SpruceMoon 2024. 11. 23. 06:31

1. 차원 축소(Dimension Reduction) 개요

 - 차원 축소 : 다차원 데이터셋(피처가 매우 많음)의 차원을 축소해 새로운 차원의 데이터셋을 생성하는 것.

    ㄴ 차원 축소 하는 이유? : 차원이 증가할수록 데이터 포인트 사이 거리가 기하급수적으로 멀어져 희소한 구조가 됨

                                                      -> 예측 신뢰도의 저하 (다중 공간성 문제)

    ㄴ 차원 축소를 통해 더 직관적인 데이터 이해가 가능.

 - 피처 선택 (feature selection) : 특성 선택. 특정 피처에 종속성이 강한 불필요 피처 제거, 주요 피처만 선택

 - 피처 추출 : 기존 피처를 저차원의 다른 공간으로 매핑해 함축적으로 더 잘 설명할 수 있게 추출 (잠재적 요소를 추출)

 - 의미 : 차원 축소를 통해 데이터를 더 잘 설명할 수 있는 잠재적 요소를 추출할 수 있음

 - 차원 축소 알고리즘 : PCA, SVD, NMF 등

 

2. PCA(Principal Component Analysis)

 - PCA : 여러 변수 간에 존재하는 상관관계를 이용해 이를 대표하는 주성분(Principal Component)을 추출해 차원을 축소하는 기법

 - PCA 수행 스텝

      1) 입력 데이터셋의 공분산 행렬 생성

      2) 공분산 행렬의 고유벡터와 고유값을 계산

      3) 고유값이 가장 큰 순으로 K개(PCA 변환 차수만큼)만큼 고유벡터를 추출

      4) 고유값이 가장 큰 순으로 추출된 고유벡터를 이용해 새롭게 입력 데이터를 변환

 

 - https://github.com/CinnaPie/ECC_1/blob/main/Chapter6/ECC_6_PCA.ipynb

 

3. LDA(Linear Discriminant Analysis)

 - LDA : 선형 판별 분석법, PCA와 매우 유사 / 클래스 분리를 최대화하는 축을 찾기 위해 클래스 간 분산과 클래스 내부 분산의 비율을 최대화하는 방식으로 차원 축소.

     ㄴ 클래스 간 분산 최대화 / 클래스 내부 분산 최소화

     ㄴ PCA와의 차이점 : 공분산 행렬이 아니라 클래스 간 분산, 클래스 내부 분산 행렬을 생성한 뒤, 이 행렬에 기반해 고유벡터를 구하고 입력 데이터를 투영

 - LDA 구하는 순서

     1) 클래스 내부, 클래스 간 분산 행렬을 구함 (개별 피처의 평균 벡터 기반)

     2) 클래스 내부 분산 행렬 Sw, 클래스 간 분산 행렬 SB -> 두 행렬을 고유벡터로 분해 가능

     3) 고유값이 가장 큰 순으로 K개(LDA 변환 차수만큼) 추출

     4) 고유값이 가장 큰 순으로 추출된 고유벡터를 이용해 새롭게 입력 데이터를 변환
 - https://github.com/CinnaPie/ECC_1/blob/main/Chapter6/ECC_6_LDA.ipynb

 

4. SVD(Singular Value Decomposition)
 - SVD : 특이값 분해, PCA와 유사한 행렬 분해 기법 이용 (m*n 크기의 행렬 A를 다음 식과 같이 분해)

 - Truncated SVD : sigma의 대각원소 중 사우이 몇 개만 추출해 여기에 대응하는 U와 V의 원소도 함께 제거해 더욱 차원을 줄인 형태로 분해하는 것.

 

5. NMF(Non-Negative Matrix Factorization)

 - NMF : 낮은 랭크를 통한 행렬 근사(Low-Rank Approximation) 방식의 변형 (Truncated SVD와 유사) / 원본 행렬 내의 모든 원소 값이 모두 양수라면 두 개의 기반 양수 행렬로 분해될 수 있는 기법을 지칭

 - 차원축소를 통한 잠재 요소 도출 => 이미지 변환, 압축, 텍스트의 토픽 도출 등의 영역에서 사용.

 

(4. ~ 5. - https://github.com/CinnaPie/ECC_1/blob/main/Chapter6/ECC_6_SVD~NMF.ipynb)

 

 

[사용 교재]

 

 

'ECC > Machine Learning Team 5 (2024-2)' 카테고리의 다른 글

[8] 텍스트 분석  (0) 2024.12.28
[7] 군집화  (0) 2024.11.30
[5] 회귀  (0) 2024.11.16
[4] 분류  (0) 2024.11.02
[3] 평가  (0) 2024.10.12