본문 바로가기
Sprint_DA01/위클리 페이퍼

위클리 페이퍼 #6 - 차원의 저주 / 고유값, 고유벡터 / 히스토그램에 대하여.

by Toddler_AD 2024. 8. 3.

Q. 데이터 간의 유사도를 계산할 때, feature의 수가 많다면(예: 100개 이상), 이러한 high-dimensional clustering 문제를 해결하기 위한 방법에는 무엇이 있는가?

A. 고차원 데이터에서 유사도를 계산하고 클러스터링을 수행하는 것은 어려운 문제이다. 이는 고차원 공간에서 데이터가 희소해지거나, 차원의 저주(curse of dimensionality)로 인해 유사도 계산이 어려워지는 문제가 있기 때문이다. 이러한 문제를 해결하기 위한 방법들은 다음과 같다.

1. 차원 축소 (Dimensionality Reduction)

  • PCA (Principal Component Analysis): PCA는 고차원 데이터를 저차원으로 축소하여 주요 변동성을 유지하는 기법. 원본 데이터의 정보 손실을 최소화하면서 중요한 특징만을 남길 수 있다. 클러스터링 전에 PCA를 사용하면 계산 비용을 줄이고 클러스터링 성능을 개선할 수 있다.
  • t-SNE (t-Distributed Stochastic Neighbor Embedding): t-SNE는 데이터의 고차원 구조를 저차원 공간에 보존하는 비선형 차원 축소 기법. 특히 시각화를 위해 2차원이나 3차원으로 축소할 때 유용하며, 클러스터의 지역적 구조를 잘 보존한다.
  • UMAP (Uniform Manifold Approximation and Projection): UMAP은 고차원 데이터를 저차원 공간으로 축소하는 또 다른 비선형 방법으로, t-SNE와 비슷하지만 더 효율적이고 확장 가능하며, 클러스터 구조를 더 잘 보존하는 경우가 많다.

2. 특징 선택 (Feature Selection)

  • L1 정규화 (Lasso Regression): L1 정규화를 통해 회귀 계수가 0이 되는 특성을 제거할 수 있다. 이는 불필요한 특성을 선택적으로 제거하여 차원을 줄이고, 더 중요한 특성만 남겨 클러스터링 성능을 향상시킬 수 있다.
  • 임베디드 방법 (Embedded Methods): 랜덤 포레스트와 같은 트리 기반 모델을 사용하여 각 특성의 중요도를 평가하고, 상위 중요도의 특성만을 선택하여 클러스터링에 사용.
  • 유전 알고리즘 (Genetic Algorithms): 유전 알고리즘은 최적의 특성 하위 집합을 찾기 위한 탐색 기법으로, 고차원 데이터에서 유용한 특징을 선택할 수 있다.

3. 정규화 및 스케일링

  • 데이터 정규화 (Normalization): 모든 특성이 동일한 스케일을 가지도록 데이터 정규화 (예: Min-Max 스케일링, Z-스코어 표준화)를 수행하면, 고차원 데이터에서 특성의 중요도 불균형을 줄일 수 있다. 이는 유사도 계산이 왜곡되지 않도록 도와준다.

4. 클러스터링 알고리즘 선택

  • Spectral Clustering: Spectral Clustering은 고차원 데이터에서 잘 작동하는 비선형 클러스터링 기법. 데이터의 유사도 행렬을 분해하여 클러스터를 찾으며, 고차원 데이터에서도 효과적일 수 있다.
  • DBSCAN (Density-Based Spatial Clustering of Applications with Noise): DBSCAN은 데이터의 밀도를 기반으로 클러스터를 찾으며, 고차원 데이터에서도 비교적 강인하게 작동. 특히 데이터의 밀도가 불균형한 경우 유용.
  • HDBSCAN: DBSCAN의 확장판으로, HDBSCAN은 고차원 데이터에서 더 나은 클러스터링 성능을 발휘할 수 있다. 이는 계층적 밀도 기반 클러스터링 방법으로, 클러스터의 밀도 차이를 더 잘 반영한다.

5. 고차원 데이터 특화 알고리즘

  • Subspace Clustering: Subspace Clustering은 전체 고차원 공간이 아닌, 데이터가 실제로 클러스터를 형성하는 저차원 서브스페이스에서 클러스터링을 수행하는 방법. 이 기법은 고차원 데이터에서 각 클러스터가 다른 특성의 하위 집합에 따라 형성되는 경우에 효과적.
  • High-Dimensional Clustering Algorithms (e.g., CLARA, CLARANS): 일부 알고리즘은 고차원 데이터에서 특화되어 사용. CLARA(CLustering LARge Applications)는 k-평균 알고리즘의 변형으로 대규모 고차원 데이터에서 클러스터링 성능을 개선.

6. 앙상블 방법 (Ensemble Methods)

  • 앙상블 클러스터링 (Ensemble Clustering): 여러 클러스터링 알고리즘을 결합하여 고차원 데이터에서 더 안정적이고 일관된 클러스터링 결과를 얻을 수 있다. 이는 각 알고리즘의 장점을 결합하여 고차원 데이터의 복잡성을 해결하는 데 유용하다.

결론:

  • 고차원 데이터에서 클러스터링을 효과적으로 수행하기 위해서는 데이터의 차원을 축소하거나, 고차원 데이터에 특화된 알고리즘을 사용하는 것이 중요. 데이터의 특성과 클러스터링 목표에 따라 위의 방법들을 조합하여 사용하는 것을 추천하는 바이다. 

Q.고유값과(eigenvalue)과 고유벡터(eigenvector)란 무엇인가?. 이들이 데이터 분석에서 왜 중요한지 구체적인 예를 들어 설명하시오.

1. 고유값과 고유벡터의 정의:

  • 고유값 (Eigenvalue):
    • 선형 변환을 거친 벡터가 그 크기만 변하고 방향은 변하지 않을 때의 변환된 벡터의 크기를 나타내는 값. 즉, 고유벡터의 크기 변화량을 나타내는 스칼라 값.
    • 수학적으로, 행렬 AAA와 벡터 vvv에 대해, Av=λvAv = \lambda vAv=λv를 만족하는 스칼라 λ\lambdaλ가 고유값.
  • 고유벡터 (Eigenvector):
    • 선형 변환을 거쳤을 때 그 방향이 변하지 않는 벡터입니다. 즉, 행렬에 의해 변환된 후에도 본래의 방향을 유지하는 벡터.
    • 위의 식에서 vvv가 고유벡터.

2. 고유값과 고유벡터의 수학적 정의:

고유값과 고유벡터는 다음과 같은 특성 방정식에서 유도:

Av=λvAv = \lambda vAv=λv

위 식에서 AAA는 행렬이고, vvv는 고유벡터, λ\lambdaλ는 고유값. 이 식은 다음과 같이 변형이 가능하다:

(A−λI)v=0(A - \lambda I)v = 0(A−λI)v=0

여기서 III는 항등행렬. 이 방정식을 풀면, 행렬 AAA의 고유값 λ\lambdaλ와 해당 고유값에 대응하는 고유벡터 vvv를 얻을 수 있다.

데이터 분석에서의 중요성 및 예시

고유값과 고유벡터는 데이터 분석에서 매우 중요한 역할을 한다. 이들은 특히 PCA(주성분 분석), 행렬 분해, 기계 학습 알고리즘 등에서 사용된다.

1. 주성분 분석 (PCA)에서의 역할:

  • PCA의 개념:
    • PCA는 데이터의 차원을 축소하는 기법. 데이터를 주성분 방향으로 투영하여 데이터의 변동성을 최대한 보존하는 동시에, 차원을 축소.
    • 고유벡터는 주성분 축을 형성하며, 고유값은 해당 주성분 축에 대한 데이터의 변동성을 나타낸다.
  • PCA 과정:
    1. 데이터의 공분산 행렬을 계산.
    2. 이 공분산 행렬의 고유값과 고유벡터를 계산.
    3. 가장 큰 고유값에 대응하는 고유벡터가 가장 중요한 주성분 축이 된다.
    4. 데이터를 이러한 주성분 축으로 투영하여 차원을 축소.
  • 예시:
    • 얼굴 인식: PCA를 사용하여 고차원인 얼굴 이미지를 주요 특징들로 표현할 수 있다. 이 때, 고유벡터는 얼굴의 주요 패턴(예: 눈, 코, 입의 위치)을 나타내고, 고유값은 이 패턴의 중요도를 나타낸다. 이렇게 하면 이미지를 효율적으로 압축하면서도 인식 성능을 유지할 수 있다.

2. 행렬 분해 (Matrix Decomposition):

  • 특잇값 분해 (SVD):
    • SVD는 고유값 분해의 일반화된 형태로, 행렬을 세 개의 행렬(직교 행렬과 대각 행렬)로 분해.
    • SVD를 통해 데이터의 구조를 이해하거나, 차원을 축소할 수 있다. 특히, 텍스트 분석에서 사용되는 **LSA (Latent Semantic Analysis)**에서는 SVD를 통해 문서-단어 행렬을 분해하여 의미 있는 주제를 추출할 수 있다.

3. 기계 학습 알고리즘:

  • 추천 시스템:
    • 영화 추천 시스템에서 사용자-영화 평가 행렬을 행렬 분해 기법을 통해 근사할 수 있다. 이 때, 고유값과 고유벡터는 사용자의 취향과 영화의 특징을 나타내며, 이들 간의 내적을 통해 사용자에게 맞춤형 영화를 추천할 수 있다.
  • LDA (Latent Dirichlet Allocation):
    • 토픽 모델링에서 LDA는 고유값과 고유벡터를 통해 문서의 주제를 학습한다. 각 주제는 고유벡터에 해당하고, 각 주제의 중요도는 고유값에 해당한다.

결론:

  • 고유값과 고유벡터는 데이터의 구조를 이해하고, 차원을 축소하며, 중요한 패턴을 추출하는 데 필수적인 개념이다. 이를 활용하면 고차원 데이터를 처리하고, 효율적인 데이터 분석 및 기계 학습 모델을 구축할 수 있다. 특히, PCA와 같은 차원 축소 기법에서 데이터의 본질을 유지하면서 정보의 밀도를 높이는 데 중요한 역할을 한다.

Q. 히스토그램의 주요 단점과, 이를 극복하기 위한 대안적인 시각화 방법

A.히스토그램은 데이터의 분포를 시각적으로 나타내는 대표적인 방법. 그러나 몇 가지 단점이 있으며, 이를 극복하기 위한 대안적인 시각화 방법이 있다.

1. 히스토그램의 주요 단점

  1. 구간 선택에 따른 왜곡:
    • 히스토그램은 데이터를 일정한 구간(bin)으로 나누어 그 빈도를 시각화한다. 이 때, 구간의 수와 크기에 따라 히스토그램의 모양이 크게 달라질 수 있다. 적절하지 않은 구간 선택은 데이터의 분포를 왜곡할 수 있다.
  2. 데이터의 정확한 분포 파악이 어려움:
    • 히스토그램은 구간 내의 데이터 포인트의 위치 정보를 잃어버리므로, 데이터가 실제로 어떻게 분포되어 있는지에 대한 상세한 정보를 제공하지 못한다. 예를 들어, 히스토그램은 데이터가 구간 내에 고르게 분포되었는지, 아니면 특정 부분에 몰려있는지 알 수 없다.
  3. 연속성 정보 손실:
    • 히스토그램은 이산적인 구간을 사용하므로, 연속적인 데이터의 흐름을 시각화하는 데 적합하지 않다. 데이터가 어떻게 연속적으로 변화하는지에 대한 정보가 손실될 수 있다.
  4. 작은 데이터셋에 대한 효과 제한:
    • 데이터 포인트가 적은 경우, 히스토그램은 빈 구간이 많아져 의미 있는 시각화를 제공하지 못할 수 있다. 데이터가 적은 상황에서는 분포를 정확하게 파악하기 어렵다.

2. 대안적인 시각화 방법

  1. 커널 밀도 추정(KDE, Kernel Density Estimation)
    • 설명: KDE는 데이터를 연속적인 함수(커널 함수)로 변환하여 데이터의 분포를 부드럽게 시각화하는 방법. 히스토그램과 달리 특정 구간으로 나누지 않고, 데이터의 밀도를 추정하여 분포를 나타낸다.
    • 장점: 구간의 수와 크기에 의존하지 않으며, 데이터의 분포를 부드럽고 연속적으로 표현할 수 있다. 데이터 포인트의 위치에 대한 정보를 더 잘 반영한다.
    • 예시: 연속적인 변수를 가진 데이터셋에서, 히스토그램 대신 KDE를 사용하면 데이터의 분포를 더 정확하게 시각화할 수 있다.
  2. 바이올린 플롯 (Violin Plot)
    • 설명: 바이올린 플롯은 KDE와 박스 플롯을 결합한 시각화 방법. 데이터의 밀도(분포)를 커널 밀도 추정으로 시각화하고, 중앙에 박스 플롯을 포함하여 데이터의 중심 경향과 분포를 한눈에 보여준다.
    • 장점: 데이터의 분포를 시각적으로 명확하게 보여줄 뿐만 아니라, 데이터의 중앙값, 사분위수 등도 함께 표현. 여러 데이터 그룹을 비교할 때 유용하다.
    • 예시: 여러 그룹의 연속형 변수를 비교할 때, 바이올린 플롯을 사용하면 각 그룹의 데이터 분포와 중앙 경향을 동시에 볼 수 있다.
  3. 박스 플롯(Box Plot)
    • 설명: 박스 플롯은 데이터의 중앙값, 사분위수, 최소/최대값, 이상치를 시각화하는 방법. 데이터의 분포와 중심 경향을 간결하게 나타낸다.
    • 장점: 데이터의 이상치와 분포의 비대칭성을 쉽게 파악할 수 있다. 여러 데이터셋을 동시에 비교할 때 유용.
    • 예시: 데이터의 중앙값과 이상치를 확인하고 싶을 때 박스 플롯을 사용하면 데이터의 전체적인 분포를 직관적으로 이해할 수 있다.
  4. 히트맵(Heatmap)
    • 설명: 히트맵은 데이터의 분포를 색으로 표현하는 시각화 방법. 2차원 데이터를 시각화할 때 유용하며, 데이터의 밀도가 높은 영역과 낮은 영역을 색의 농도로 구별할 수 있다.
    • 장점: 대규모 데이터를 한눈에 시각화할 수 있으며, 데이터의 패턴과 상관관계를 쉽게 파악할 수 있다.
    • 예시: 시간에 따른 변수의 변화를 시각화하거나, 대규모 데이터셋의 상관관계를 분석할 때 히트맵을 사용.
  5. ECDF 플롯(Empirical Cumulative Distribution Function)
    • 설명: ECDF 플롯은 데이터의 누적 분포를 나타내는 그래프이다. 특정 값보다 작은 데이터 포인트의 비율을 시각화하여 데이터의 전체적인 분포를 보여준다.
    • 장점: 데이터의 전체 분포를 직접적으로 보여주며, 히스토그램과 달리 구간 설정의 문제가 없다. 여러 데이터셋을 비교할 때도 유용.
    • 예시: 데이터가 특정 값 이하에 얼마나 많이 분포하는지 파악할 때 ECDF 플롯을 사용한다.

3. 결론

  • 히스토그램은 데이터의 분포를 시각화하는 데 유용하지만, 구간 선택의 민감성, 연속성 정보의 손실 등의 단점이 있다. 데이터의 특성과 분석 목적에 따라 KDE, 바이올린 플롯, 박스 플롯, 히트맵, ECDF 플롯 등의 대안적인 시각화 방법을 사용하면 데이터를 더 정확하고 의미 있게 해석할 수 있다.