09. 클러스터링

maro·2024년 1월 21일

'단단한 머신러닝' 책과 스터디 내용을 기반으로 작성하였습니다.


9.1 클러스터링 학습 문제

  • 클러스터링
    • 서로 유사한 속성을 갖는 데이터를 같은 군집으로 묶어주는 작업
    • 서로 교차하지 않는 여러 개의 부분 집합으로 분할한 것
    • 클러스터의 결과는 클러스터 레이블 벡터를 포함한 원소로 표현됩니다.

9.2 성능척도

1) 클러스터 내 유사도 vs 클러스터 간 유사도

  • 클러스터 내 유사도 : 같은 클러스터 내의 데이터 포인트 간의 거리가 가까운 정도
  • 클러스터 간 유사도 : 서로 다른 클러스터 간 데이터 포인트들의 거리가 가까운 정도
  • 이상적인 상황 : 클러스터 내 유사도는 높고, 클러스터 간 유사도는 낮은 경우

2) 외부 지표 vs 내부 지표

  • 외부 지표 : 클러스터링 결과와 다른 참고 모델 비교
  • 내부 지표 : 다른 참고 모델을 사용하지 않고 데이터만 사용하는 것
  • 자카드 계수
    • 두 데이터 집합 간의 유사도를 측정하는 지표
    • 두 클러스터 간 공통 원소의 비율로 계산
  • FM 지수
    • 클러스터링의 정확성을 평가하는 데 사용
  • Rand 지수
    • 모든 데이터 쌍에 대해 클러스터링이 올바르게 수행되었는지의 비율
  • DB 지수 (DBI)
    • 클러스터링의 품질을 평가하는 지표, 클러스터 내 응집도와 클러스터 간 분리도의 비율
    • 작을 수록 좋습니다.
  • Dunn 지수 (DI)
    • 클러스터 내 거리와 클러스터 간 최대 거리의 비율을 기반
    • 클수록 좋습니다.

9.3 거리 계산법

1) 계산 척도의 성질(distdist함수)

  • 비음수성 : 최소 0이상
  • 동일성
  • 대칭성
  • 삼각부등식 성질

2) 명/서/등/비

  • 명목 척도: 형식 상의 부여, ex) 남: 0, 여: 1
  • 서열 척도: 높고 낮음의 구분 가능 ex) 학년, 순위 등
  • 등간 척도: 연속선상에 수치부여 ex) 온도
  • 비율 척도: 절대적인 0에 의한 측정 ex) 무게, 키, 소득수준 등

3) 비척도 거리

  • 두 점 사이의 거리를 측정하는 방법 중 하나로, 유클리드 거리나 맨해튼 거리와 같은 척도를 따르지 않는 방법
  • 척도가 아닌 다른 특성에 의해 거리가 결정

4) 거리 척도 학습

  • 데이터의 특성에 따라 최적의 거리 측정 방법을 학습하는 것
  • 주어진 데이터의 특성을 최대한 반영하여 두 점 사이의 거리를 측정하는 척도를 학습, 분류나 클러스터링 등의 작업을 더욱 효과적으로 수행할 수 있도록 도움

9.4 프로토타입 클러스터링

1) k 평균 클러스터링 알고리즘

  • 클러스터링을 주어진 데이터를 K개의 클러스터로 묶는 알고리즘
  • 과정
    1. 데이터 포인트를 임의로 선택하여 초기 클러스터들의 중심 설정
    2. 각 중심점에서 가장 가까운 클러스터 중심에 데이터 포인트들의 클러스터 할당
    3. 클러스터 중심을 해당 클러스터에 속한 데이터 포인트들의 평균 위치로 업데이트
    4. 클러스터 중심의 위치가 변하지 않을 때까지 2번과 3번의 과정을 반복

2) 가우시안 혼합 클러스터링

  • 각 데이터 포인트가 어떤 클러스터에 속하는지 '확률적으로' 할당하는 소프트 클러스터링 방법

  • 데이터를 여러 개의 가우시안 본포를 가진 클러스터로 구분하는 방법

  • 주어진 데이터 세트가 여러 개의 다른 가우스 분포를 가진 데이터들의 집합으로 혼합된 것으로 보고, 각 가우스 분포를 찾아내는 것이 GMM 클러스터링의 목표

  • 과정

    1. 초기화
      • 초기 가우시안 분포의 파라미터와 각 분포의 가중치를 임의로 설정.
      • 이때 가중치는 각 데이터 포인트가 해당 가우시안 분포에 속할 확률을 의미
    2. Expectation 단계(E-step)
      • E-step에서 계산한 확률을 사용하여 가우시안 분포의 파라미터와 가중치를 업데이트함
      • 각 파라미터는 해당 클러스터에 속할 확률이 높은 데이터 포인트글에 더 큰 영향을 받도록 업데이트
    3. Maximization 단계(M-step)
      • E-step에서 계산한 확률을 사용하여 가우시안 분포의 파라미터와 가중치를 업데이트함
      • 각 파라미터는 해당 클러스터에 속할 확률이 높은 데이터 포인트들에 더 큰 영향을 받도록 업데이트
    4. 수렴
      • 로그-우도(log-likelihood)가 특정 임계값 이하로 변하지 않거나, 최대 반복 횟수에 도달할 때까지 E-step과 M-step을 반복
    5. 결과
      • 알고리즘이 수렴하면, 각 데이터 포인트를 가장 높은 확률을 가진 클러스터로 할당

9.5 밀도 클러스터링

1) DBSCAN

  • 밀도 기반의 클러스터링 방법

  • 클러스터를 고밀도의 연속적인 지역으로 정의, 낮은 밀도의 지역에 의해 분리

  • 주요 개념

    • ϵ\epsilon-이웃지역
      데이터 포인트 p의 ϵ\epsilon-이웃지역 p로부터 거리 ϵ\epsilon 이내에 있는 모든 데이터 포인트의 집합
    • 핵심 대상
      주변 영역 내에 최소한 'MinPts'라는 특정 수 이상의 데이터 포인트가 있는 경우, 해당 데이터 포인트는 핵심 대상이 됨
    • 직접 접근 가능
      데이터 포인트 p에서 q로의 거리가 ϵ\epsilon 이내이고, p가 핵심 대상인 경우, q는 p에서 직접 접근가능함
    • 접근 가능
      데이터 포인트 p와 q 사이에 연속된 핵심 대상이 존재하여 p에서 q로 이동할 수 있는 경우, q는 p에서 접근가능함
    • 연결된
      데이터 포인트 p와 q아 서로 접근 가능한 경우, p와 q는 연결된다고 합니다.

    cf) 노이즈 or 특이값
    : 어떤 클러스터에도 속하지 않은 샘플

2) 과정

  1. 임의의 데이터 포인트를 선택하고, 그 포인트의 ϵ\epsilon - 이웃지역에 있는 데이터 포인트의 수를 확인
  2. 만약 ϵ\epsilon-이웃지역에 있는 데이터 포인트의 수가 'MinPts'보다 많다면, 새로운 클러스터를 생성하고 해당 데이터 포인트를 핵심 대상으로 표시
  3. 핵심 대상이 아닌 데이터 포인트를 만날 때까지 핵심 대상의 ϵ\epsilon-이웃지역 내의 모든 데이터 포인트를 동일한 클러스터에 할당
  4. 모든 데이터 포인트를 방문할 때까지 이 과정을 반복

* MinPts : 주변 영역 내 최소 데이터 기준치

9.6 계층 클러스터링

1) 계층 클러스터링

  • 데이터를 계층적인 구조를 가진 클러스터로 구분하는 방법
  • 클러스터간의 거리를 기반으로 작동하며, 결과적으로 덴드로그램이라는 트리형태 구조 생성

2) 과정

  • 병합적 -> 상향식
    • 각 데이터 포인트들을 하나의 클러스터로 간주한 상태에서 시작합니다.
    • 최종적의로는 하나의 클러스터가 되며 이전까지는 가장 가까운 클러스터끼리 병합됩니다.
  • 분할적 -> 하향식
    • 모든 데이터 포인트들을 하나의 클러스터라고 가정한 상태에서 시작합니다.
    • 가장 멀리 떨어진 데이터 포인트들을 찾아 클러스터를 분리해가는 과정을 반복하며 마지막에는 각 데이터 포인트가 서로 다른 클러스터가 됩니다.

클러스터 간의 거리를 계산하는 방식에 따라 적절한 클러싀터의 갯수와 거리감이 달라집니다.

0개의 댓글