AI/머신러닝

수업[2.4](군집, DBSCAN, PCA)

edcrfv458 2025. 2. 4. 20:41

군집

 

K-means의 한계점: 몇 가지 가정들이 실제 데이터에 성립되지 않는 경우가 있음

  1. 모든 클러스터가 구형이라고 가정함 -> 비선형적 형태의 군집을 제대로 구분하지 못함
  2. 모든 클러스터의 크기가 비슷하다고 가정함 -> 넓게 분산되어 있는 경우 처리하지 못함
  3. 모든 데이터가 어떤 클러스터에 반드시 속한다고 가정함 -> 이상치나 노이즈 있을 때 잘 처리하지 못함

 

DBSCAN(밀도 기반 클러스터링)

  • 한계점 극복위한 방법 
    • 데이터의 분포 밀도를 기반으로 군집을 형성
    • 데이터의 자연스러운 패턴을 찾는데 효과적
    • 사람의 뇌가 무의식적으로 밀도를 기반으로 군집화하는 것과 동일

주요 특징

  • 클러스터의 형태에 대한 제약이 없음 (구불구불, 반달 등 가능)
  • 클러스터의 크기나 밀도가 다양해도 잘 작동함 (조밀한 군집과 상대적으로 느슨한 군집 동시에 찾음)
  • 노이즈를 자연스럽게 처리 가능함 (이상치는 따로 두고 이상치가 아닌 것들로만 군집화)

 

작동 원리

주요 매개변수

  • epsilon: 이웃을 정의하는 반경
  • minPoints: 핵심 포인트를 결정하는 최소 데이터 포인트 수

데이터 포인트의 분류

  • 핵심(Core) 포인트: epsilon 반경 내에 minPoints개 이상의 이웃을 가진 포인트
  • 경계(Border) 포인트: 핵심 포인트는 아니지만 핵심 포인트의 epsilon 반경 내에 있는 포인트
  • 잡음(Noise) 포인트: 위 두 경우에 해당하지 않는 포인트

알고리즘 단계

  1. 임의의 시작점을 선택해 epsilon 반경 내의 이웃 탐색
  2. 해당 포인트가 핵심 포인트인지 확인
  3. 핵심 포인트라면 새로운 군집 시작하고 연결된 모든 포인트를 같은 군집으로 할당
  4. 경계 포인트라면 자신의 반경 내의 핵심 포인트들 중 하나의 핵심 포인트가 속한 군집에 할당
  5. 방문하지 않은 모든 포인트에 대해 1~4단계 반복
알고리즘 k-means DBSCAN
기본 원리 중심점 기반 밀도 기반
필요 파라미터 k(군집 수) 반경, 최소 이웃 수
군집 모양 구형/원형 제한 어떤 모양이든 가능
군집 크기 비교적 균일한 크기 다양한 크기 허용
이상치 처리 처리 불가 제외 가능
확장성 대규모 데이터셋에 효율적 대규모 데이터셋에서 계산 비용 높음
결과 일관성 초기값에 따라 결과 변동 파라미터가 같다면 항상 동일한 결과

 

DBSCAN 효과적인 상황: 군집의 모양이 불규칙하거나 크기가 다양할 때, 그리고 이상치 처리가 필요할 때


PCA

 

필요성

  • 두 문제를 해결
    • 차원의 저주(차원이 증가할수록 데이터의 분포가 희박해지고, 분석이 어려워지는 문제)
    • 다중공선성(독립 변수들 간 상관관계가 높을 경우 회귀분석에서 모델 결과에 있어 해석이 부정확하다는 개념)
  • 데이터의 변동성(정보)을 최대한 보존하면서 더 적은 수의 변수(주성분)로 표현하는 방법
    • 여러 독립변수들이 보유하기 있는 핵심 특성만 선별하는 과정을 거침(변수 선택이 아닌 압축)
  • 핵심
    • 주어진 데이터의 중요한 정보만 남겨 차원을 줄이는 것

 

과정

  • 주성분 찾기: 가장 많은 정보를 포함하는 방향을 찾음
    • 방향(= 분산 = 정보량 = 가장 중요한 특징)
  • 데이터 변환 과정: 기존 방식보다 더 효율적으로 데이터를 정리하는 방향을 찾아 변환화는 과정
    • 데이터를 압축한다 ➡️ 정사영 시킨다(Projection)
    • 2차원일 경우 2개의 고유 벡터가 나오는데 그 중 큰 벡터를 고름(한 벡터는 손실=희생)
  • 차원 선택: 일반적으로 전체 데이터의 80% 이상의 정보를 유지하는 최소한의 주성분을 선택
    • 데이터의 핵심 정보는 유지하면서, 불필요한 차원은 줄여 가볍고 효율적인 데이터로 변환하는 것

핵심 용어

 

공분산(Covariance): 두 변수가 어떻게 함께 변화하는지를 의미

  • 양이라면 한 변수 증가할 때 다른 변수도 증가
  • 음이라면 한 변수 증가할 때 다른 변수는 감소
  • 0 이라면 두 변수가 서로 독립적

 

고유 값과 고유 벡터 (Eigen value & Eigen vector)

  • 공분산 행렬: 공분산을 모든 변수 쌍에 대해 계산해 행렬해 나타낸 것
    • 공분산 행렬의 대각선 원소는 각 변수의 분산, 나머지는 변수 간의 공분산
  • 고유 벡터: 공분산 행렬이 나타내는 주요 방향
    • 타원형 데이터에서 긴 축과 짧은 축의 방향 찾는 것과 동일
  • 고유 값: 그 방향으로의 분산의 크기
    • 데이터가 그 방향으로 얼마나 퍼져있는 지를 의미

 

※ 중심화(평균을 뺴는 작업)가 필요한 근본적 이유: 변화량을 정확하게 측정하기 위함

  • 변수의 절대적인 크기의 영향 제거하고 순수한 변화량만을 측정할 수 있도록

 

 PCA에선 왜 상관계수가 아닌 공분산을 사용할까?

  • 공분산은 원본 변수의 단위에 따라 값이 변하지만, 상관계수는 단위와 무관하게 -1~1사이의 값을 가짐
  • PCA는 데이터의 실제 변동성을 최대한 보존하려 하는 기법인데, 만약 상관계수를 사용하게 되면 모든 변수가 동일한 중요도를 가지게 되어, 중요한 변동 정보가 손실될 수 있다