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


- 분산의 정의
- 데이터가 퍼져 있는 정도
- 엔트로피(Entropy)
- 정의 : 물질이 분산되는 정도, 분포가 가지는 정보의 확신도 (=정보량)
- 정보이론 관점에서 퍼져 있는 정도가 같다면 정보량이 같다는 의미
-차원축소와 분산
- 두 개 이상의 feature를 합쳐 하나로 만들 때 데이터의 분산을 유지하면 데이터의 특성을 유지할 수 있다.
- 데이터 간의 분산을 최대로 한다면 정보의 손실을 최소화할 수 있다.
- 공분산
- 정의 : 2개의 확률변수의 선형관계 / 상관정도(correlation)을 나타내는 값
- 선형 상관관계
- 두 확률 변수 X,Y가 있을 때
- X가 증가/감소 할 때 Y가 반드시 증가/감소하는 경향
- X가 증가/감소 할 때 Y가 반드시 감소/증가하는 경향
- X의 증가/감소에 상관없이 Y의 데이터가 분포
- 두 확률 변수 X,Y가 있을 때

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

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

- 주성분 분석 개요
- 분산이 가장 큰 방향으로 첫 번째 축을 생성하여 사영시킴. (첫번째 데이터 feature 생성)
- 첫 번째 축에 직각이 되는 벡터를 두 번째 축으로 하여 사영시킴. (두번째 데이터 feature 생성)
- 두 번째 축에 직각이 되는 벡터를 세 번재 축으로 하여 사영시킴. (세번째 데이터 feature 생성)
Q). 첫 번째 축을 어떻게 찾을까?
- 목적
- 고차원의 데이터를 분산이 최대로 보존되는 저차원의 축 평면으로 투영하여 차원 축소
- 해결하고자 한 것
- 분산이 최대로 보존되는 축을 어떻게 찾을 것인가?
- 방법
- 입력 데이터들의 공분산 행렬에 대한 고유값 분해, 그 값으로 선형 변환(투영)을 취한다.
- 고유값 (Eigenvalue)와 고유벡터 (Eigenvector)
- 정의
- 어떤 행렬 A에 대해 상수 λ와 벡터 x가 다음 식을 만족할 때, Ax = λx
- 이때 λ와 x를 각각 행렬 A의 고유값 및 고유벡터라고 함
- 고유벡터 (x)
- 행렬이 벡터의 변화에 작용하는 주축의 방향을 나타냄
- 공분산 행렬의 고유벡터는 데이터가 어떤 방향으로 분산되어 있는지 나타냄
- 고유값 (λ)
- 고유벡터 방향으로 얼마 만큼의 크기로 벡터공간이 늘려지는지를 나타냄
- 고유값은 여러 해가 존재할 수 있으며 값이 큰 순서대로 고유 벡터를 정렬하면 결과적으로 중요한 순서대로 주성분을 구할 수 있음
주성분 분석 - 과정 요약
- 데이터 정규화(표준화)
- Covariance matrix 계산
- Covariance matrix로부터 고유값 계산
- 고유 벡터 구하기
- 고유벡터를 고유값의 순서대로 나열
- 고유벡터를 1에서 구한 기존 데이터에 적용하여 변환
- 이때 elbow point / 정보량 기준으로 데이터 선택
주성분 분석의 한계
- 데이터의 분포가 비선형일 경우 적용하기가 어려움
- 대안 : LLE (Locally Linear Embedding)
- 분류 문제에 대해서 데이터의 범주를 정보를 고려하지 않기 때문에 PCA를 취한뒤 범주 분류가 더 잘되도록 변환되는 것은 아님
- 대안 : PLS (Partial Least Square)
728x90
'빅데이터분석' 카테고리의 다른 글
| 빅데이터분석(5) - Decision Tree (0) | 2025.03.31 |
|---|---|
| 빅데이터분석(4) - Feature Selection (0) | 2025.03.27 |
| 빅데이터분석(3) - T-SNE (0) | 2025.03.24 |
| 빅데이터 분석(1) - Data cleaning (0) | 2025.03.17 |