Dimensionality Reduction: 고차원 데이터를 2D 평면에 시각화하기
지난 포스팅에서는 데이터 클러스터링에 대해 알아보았다. 이번에는 데이터 사이언스 기초 과목의 마지막 부분인 차원 축소(Dimensionality Reduction)에 대해 알아보겠다. 고차원 데이터는 시각화하기 어렵고 모델 학습에 많은 시간과 자원을 필요로 하기 때문에, 차원 축소는 데이터 분석 과정에서 필수적인 단계이다. 오늘은 차원 축소의 대표적인 방법인 주성분 분석(Principal Component Analysis, PCA)과 특징 병합(Feature Agglomeration)에 대해 알아보겠다.
1. 차원 축소 (Dimensionality Reduction) 란?
고차원 데이터를 저차원 데이터로 변환하는 과정을 차원 축소(Dimensionality Reduction)라 한다. 차원 축소는 데이터의 복잡성을 줄이고, 시각화를 용이하게 하며, 모델 학습 속도를 향상시키는 데 도움을 준다.
1.1. 차원 축소의 필요성
- 시각화: 고차원 데이터는 2차원 또는 3차원 공간에 시각화하기 어렵다. 차원 축소를 통해 데이터를 저차원 공간으로 변환하면 데이터의 패턴을 쉽게 파악할 수 있다.
- 계산 비용: 고차원 데이터는 모델 학습에 많은 시간과 자원을 필요로 한다. 차원 축소를 통해 데이터의 크기를 줄이면 학습 속도를 향상시킬 수 있다.
- 잡음 제거: 불필요한 특징(feature)은 모델의 성능을 저하시킬 수 있다. 차원 축소를 통해 중요한 특징만 선택하면 모델의 일반화 성능을 높일 수 있다.
2. 주성분 분석 (Principal Component Analysis, PCA)
PCA(Principal Component Analysis)는 데이터의 분산을 최대한 보존하면서 차원을 축소하는 방법이다. PCA는 데이터의 공분산 행렬(covariance matrix)의 고유값 분해(eigenvalue decomposition) 또는 특이값 분해(singular value decomposition, SVD)를 통해 주성분(principal component)을 찾는다.
- First Principal Component: 데이터의 분산을 가장 많이 설명하는 방향 벡터다.
- Second Principal Component: 첫 번째 주성분과 직교(orthogonal)하면서 데이터의 분산을 두 번째로 많이 설명하는 방향 벡터다.
![]() |
PCA |
2.1. PCA 구현 과정
- 데이터 전처리 (Data Preprocessing): 특징 스케일링(feature scaling) 또는 평균 정규화(mean normalization)를 수행
- 공분산 행렬 계산 (Compute Covariance Matrix): 데이터의 공분산 행렬을 계산
- 고유값 분해 또는 특이값 분해 (Eigenvalue Decomposition or Singular Value Decomposition): 공분산 행렬의 고유값과 고유 벡터를 계산하거나, 특이값 분해를 수행
- 주성분 계산 (Compute Principal Components): 고유 벡터 또는 특이 벡터를 사용하여 주성분을 계산
- 차원 축소 (Dimensionality Reduction): 선택한 주성분 개수만큼 데이터를 투영(project)하여 차원을 축소
2.2. Projection (투영)
PCA에서 투영은 원본 데이터를 주성분으로 구성된 새로운 공간에 사영하는 것을 의미한다. 이를 통해 데이터의 차원을 줄이면서 최대한 많은 정보를 보존할 수 있다.
![]() |
Projection |
3. Random Projection (랜덤 투영)
Random Projection은 랜덤 행렬을 사용하여 데이터를 저차원 공간으로 투영하는 방법이다. PCA에 비해 계산 속도가 빠르지만, 정보 손실이 발생할 수 있다는 단점이 있다.
Random projection |
4. Feature Agglomeration (특징 병합)
Feature Agglomeration은 유사한 특징들을 하나의 그룹으로 묶어 차원을 축소하는 방법이다. 계층적 군집화(Hierarchical Clustering)와 유사하지만, 데이터 포인트 대신 특징을 병합한다.
![]() |
Feature agglomeration |
마무리
이번 포스팅에서는 차원 축소의 개념과 PCA, Random Projection, Feature Agglomeration에 대해 알아보았다. 차원 축소는 고차원 데이터를 효율적으로 분석하고 시각화하는 데 필수적인 기술이다. 이렇게 데이터사이언스기초 강의가 마무리되었다. 앞으로 인공지능을 공부하는데 있어 기본이 될 내용들이니, 향후 어떻게 활용할 수 있을지 기대된다.
추천글 :
[데이터사이언스기초] Introduction to Machine learning
(https://hyeonb.blogspot.com/2024/06/introduction-to-machine-learning.html)
[데이터사이언스기초] Machine learning process
(https://hyeonb.blogspot.com/2024/06/machine-learning-process.html)
(https://hyeonb.blogspot.com/2024/06/data-clustering.html)