AI

3탄: 차원의 저주 해결법! 고차원 문제를 극복하는 방법

Jerrykim91 2025. 2. 28. 00:12

3탄: 차원의 저주 해결법! 고차원 문제를 극복하는 방법

 

자, 이제 차원의 저주에 대해서도 알아보았으니 차원의 저주 해결 방법에 대해서도 알아보도록 하자. 

출처:unsplash

 

혹시나 차원의 저주에 대해서 보지 않은 분은 아래 링크로 GoGo~~

https://jerrykim91.tistory.com/65

 

2탄: 차원의 저주란? 고차원 데이터에서 발생하는 문제

자, 이제 진짜 차원의 저주에 대해서 설명하고자 한다. 차원의 저주저차원과는 달리 고차원의 경우 우리가 직관적으로 이해하는 저차원 공간과 매우 다른 성질*을 나타내는데 이걸 차원의 저주

jerrykim91.tistory.com

 

 

 


차원의 저주 해결 방법

차원의 저주를 해결하는 방법에는 다양한 방법이 있다.

차원 축소, 특성선택 등 여러방법이 있다. 가볍게 살펴보도록 하자.


차원 축소 (Dimensionality Reduction)

차원이 많으면 복잡해지니 불필요한 차원을 제거하는 방법 중 하나인 차원 축소 기법이다. 주성분 분석, T-SNE, UMAP, 선형 판별 분석 등이 있다. 

 


주성분 분석(PCA, Principal Component Analysis)

주성분 분석은 고차원 데이터를 저차원으로 투영하면서 정보 손실을 최소화하는 방법이다. 쉽게 말해 데이터를 가장 잘 사용하는 새로운 축(주성분)을 찾아서 차원을 줄이는 방법이다. 장점은 데이터의 중요한 정보를 최대한 유지하면서 차원을 줄일 수 있다. 


T-SNE, UMAP

데이터의 구조를 유지하면서 고차원의 데이터를 2D, 3D 같은 저차원 데이터로 줄이는 방법으로 주로 시각화를 위해 사용된다.(PCA보다 비선형적인 구조를 잘 반영함)  


선형 판별 분석(LDA)

클래스 간 분리를 최적화하면서 차원을 줄이는 방법이다.

 

 


특징 선택 (Feature Selection)


차원을 줄이는 또 다른 방법은 중요한 특성만 골라서 사용하는 방법인데 이것을 우리는 특징 선택 (Feature Selection)이라고 한다.

1. 필터 방법(Filter Method) – 상관관계 분석, 분산이 낮은 특성 제거
2. 랩퍼 방법(Wrapper Method) – 모델을 학습하면서 중요한 특성을 선택 (예: RFE)
3. 임베디드 방법(Embedded Method) – 알고리즘 자체가 중요한 특성을 선택 (예: L1 정규화(Lasso), 랜덤포레스트, 변수 중요도(Feature Importance))

참고로 Feature Selection(특성 선택)과 Feature Engineering(특성 엔지니어링) 은 연관은 있으나 다르다.

구분 Feature Selection (특성 선택) Feature Engineering (특성 엔지니어링) 
목적 불필요한 특성을 제거 새로운 특성을 생성
방법 상관관계 분석, 모델 기반 선택, Lasso 변환, 조합, 인코딩, 도메인 지식 활용
예제 혈액형은 필요 없으니 삭제 키와 몸무게로 BMI 계산해서 추가


 한마디로
- Feature Selection → "쓸데없는 걸 버려서 더 간결하게!"  
- Feature Engineering → "새로운 걸 만들어서 더 똑똑하게!"  

 


정규화 & 거리 재설정

고차원에서는 거리 개념이 깨지기 때문에 데이터 정규화라던지 여러가지 기법을 사용해서 이를 보완하는 방법도 있다. 

아래에서 간략하게 보고 넘어가자.

 

데이터 정규화 (Normalization & Standardization)

차원마다 값의 범위가 다르면, 특정 차원이 모델에 너무 큰 영향을 줄 수 있다. 예를 들어보면 "키(170cm)"와 "연봉(5000만원)"을 비교할 때, 연봉이 너무 크면 키의 영향이 무시될 수도 있다. 그래서 모든 값을 비슷한 범위로 조정하면 거리 계산이 더 정확해진다. 이때 사용가능 한 기법이 정규화이다.


  - Min-Max 정규화(최소-최대 정규화) : 데이터를 0~1 범위로 변환  
  - Z-score 정규화(Z-점수 정규화): 평균을 0, 표준편차를 1로 변환  



거리 척도 변경

유클리드 거리(Euclidean Distance)는 고차원에서 의미를 잃어버리기 때문에 대신 코사인 유사도(Cosine Similarity)맨해튼 거리(Manhattan Distance)를 사용할 수도 있음  


 

고차원에서도 강한 알고리즘 사용

차원의 저주에 강한 알고리즘을 사용하는 것도 방법이다.  고차원에서도 강한 알고리즘으로는...

- 트리 기반 모델 (랜덤 포레스트, XGBoost)  
  거리 기반이 아니라 분할(가지치기) 방식이므로 차원의 영향을 덜 받는다.
- 딥러닝 (CNN, Autoencoder 등)  
  딥러닝은 자동으로 중요한 특성을 학습해서 차원 문제를 어느 정도 해결할 수 있다.  

등이 있다.

 

위에서 언급한 차원의 저주를 해결하는 방법들을 표로 정리해 보았다. 

방법 Point
차원 축소 (PCA, t-SNE, UMAP) 데이터의 중요한 부분만 남겨서 차원 줄이기
특성 선택 (Feature Selection) 꼭 필요한 특성만 골라서 사용 
정규화 & 거리 변경 데이터 범위를 맞추고, 거리 계산 방식 바꾸기
고차원에서도 강한 알고리즘 사용 랜덤 포레스트 등 차원에 강한 알고리즘 사용



즉, 불필요한 차원을 줄이고, 데이터 정리를 잘하면 차원의 저주 문제를 해결할 수 있다. 

 

 


이렇게 차원의 저주와 그 해결 방법에 대해 정리해 보았다. 
예상했던 것보다 내용이 꽤 길어서 3개의 포스팅으로 나누어 진행했는데, 작은 도움이라도 되었으면 한다.


차원의 저주는 데이터 분석에서 중요한 문제지만, 적절한 해결 방법을 통해 충분히 극복할 수 있다.
각 방법을 상황에 맞게 잘 활용한다면, 고차원 데이터에서도 효과적인 분석이 가능할 거라고 생각한다. 😊

그럼, 다른 포스팅으로 또 만나요~ 안뇽~~~