LITTLE BY LITTLE

[1] 시계열 군집 분석 - 계층적 군집화의 개념과 종류 본문

데이터 분석/시계열 데이터 분석

[1] 시계열 군집 분석 - 계층적 군집화의 개념과 종류

위나 2023. 11. 24. 22:20

시계열 추세를 반영한 군집 분석

- DTW(Dynamic Time Warping)을 활용

- 계층적 군집 분석과의 융합 고려


군집 분석의 분류도

 

데이터들의 성격을 파악할 수 있는 비지도 학습을 통해서 유용한 특성 구조를 발견할 수 있다.

  • 대표적인 비지도 학습 방법인 군집 분석
    • 데이터들이 얼마나 퍼져있는지, 모여있는지(분산)를 눈으로 파악하지 못할 때 유용
    • 사용자가 직접 모델을 해석해야 하며, 이 때 생성되는 규칙을 추론하여 데이터를 해석해야 함
  • 많이 알려진 K-means는 비계층적 군집화(=구하고자 하는 군집의 수를 정한 상태에서 설정된 군집의 중심에 가장 가까운 개체를 하나씩 포함해 가는 군집 형성 방법)
  • 공부 안해봤던 계층적 군집화를 중점으로 알아보자.
 

[13] 파이썬 머신러닝 완벽 가이드 - 7. 군집화 (평균 이동, GMM, DBSCAN, 고객 세그먼테이션 실습)

7. 군집화 K-평균 알고리즘 이해 군집 평가 평균 이동 (Mean shift) GMM(Gaussian Mixture Model) DBSCAN 군집화 실습 - 고객 세그먼테이션 정리 더보기 차원 축소 LDA (Linear Discriminant Anlysis) SVD (Singular Value Decompos

noelee.tistory.com

 

계층적 군집화(Hierarchical Clustering)

: 한 군집이 다른 군집을 포함할 수 있는 구조로 군집을 만드는 것 

(좌) 계층적 군집 분석, (우) 덴드로그램

  • 위 그림에서 알 수 있듯이, 가지처럼 파생되는 형태로 결과가 얻어지는 데, 이를 덴드로그램이라 한다.
  • 가장 유사한 개체를 묶어 나가는 과정을 반복하여 원하는 개수의 군집을 형성하는 방법 (k-means처럼 군집 개수를 사전에 정하지 않음)
  • 결과가 트리 형태로 구성되어 직관적이고 중요한 정보를 제공한다. 트리 구조에서 아래 말단에 놓이는 데이터들이 어떤 상위 구조에 포함되어 있는지 직관적으로 볼 수 있음
    • 그래서 군집 분석을 할 때에는 계층적 군집 분석을 먼저 수행하는 것이 권장되는데, 수행 시 데이터의 군집 형성이 어떻게 이루어져있는지 확인하고 적절한 수준의 군집의 개수를 판단할 수 있기 때문.
  • 군집화의 결과가 중첩적(nested) 성질을 가지고 있어 계층적 군집 분석은 군집들끼리 서로 포함 관계를 맺을 수 있다.
  • 계층적 군집 분석은 응집형(=병합적,agglomerative) 방법분리형(=분할적, divisive) 방법 두 가지로 나뉜다.
    • 응집형 방법: 이름에서 알 수 있듯이, 자료 하나하나를 군집으로 간주하고, 가까운 군집끼리 연결해나가며 군집의 크기를 점점 늘려가는 상향식 방법
    • 분리형 방법: 전체 자료를 하나의 군집으로 간주하고, 유의미한 부분을 쪼개어 나가며 군집의 크기를 점점 줄여가는 하향식 방법

1. 응집형 방법

응집형 방법에서의 거리 측정 방식

1-1. 최단 연결법 (Single Linkage)

  • 군집 a와 b에 속하는 데이터 중 가장 가까운 데이터들의 거리
  • 한계: 클러스터 사이에 노이즈가 있는 경우 클러스터를 적절하게 분리할 수 없음

 

최단연결법

1-2. 최장 연결법 (Complete Linkage)

  • 군집 a와 b에 속하는 데이터 중 가장 먼 데이터들의 거리
  • 한계: 최대 접근 방식은 큰 클러스터를 끊는 경향이 있음

최장연결법

1-3. 평균 연결법 (Average Linkage)

  • 군집 a와 b에 속하는 데이터들의 거리의 평균
  • 한계: 원의 모양과 비슷하게 생성된 클러스터들을 분리할 시 편향성이 존재

평균 연결법

1-4. 중심 연결법 (Centroid Linkage)

  • 군집 a와 b에 속하는 데이터들의 중심간의 거리
  • 한계: 계산 부하가 다른 방법보다 군집화 성능이 떨어짐

중심 연결법

1-5. 가중거리 연결법 (Weighted Linkage)

  • 원래 어떤 두 개의 군집이 합쳐져 하나의 군집이 만들어진 건지 알아야 함
  • 만약 군집 A가 a1+a2일 때, 이 군집 A와 B와의 거리는 원래의 군집 a1, a2와 B와의 거리의 평균
  • 안정적인 군집화 제공

가중거리 연결법

1-6. 와드 연결법 (Ward Linkage)

  • 군집 평균과 군집 내 유클리디언 최소 증가 방식 사용
  • 군집 A(Pi ∈ A) 와 B(Pj B) 가 병합된다고 가정하고, 병합된 군집과 모든 Pk간의 거리의 거리 제곱 합에서 군집 A에서의 Pi와 병합된 군집사이의 거리의 제곱 값들과, 군집 B에서 Pj와 병합된 군집사이의 거리의 제곱 값들의 합을 뺀 값이 가장 작은 군집을 병합해 나가는 방법
  • 한계: 원의 모양과 비슷하게 생성된 클러스터들을 분리할 시 편향성이 존재

 

와드 연결법, 비슷한 크기의 군집끼리 병합하는 경향이 있다.

2. 계층적 군집화의 한계점

  • 데이터를 재정렬하거나, 몇 개의 관측치를 제외할 경우 결과가 아예 달라질 수 있음
  • 한 군집에 할당되면 다시는 다른 군집에 포함되지 못하기 때문에, 잘못된 군집 결과를 초래할 수 있음
  • 초기에 이상치가 분류되면 전체 결과가 왜곡
  • 군집 간의 거리를 어떻게 계산하는지에 따라 한계점을 갖게 됨
    • 노이즈와 이상치에 취약
    • 복잡한 군집을 다루지 못함
  • 계산 비용이 더 높음 (근접행렬을 사용하기 대문에 데이터포인트가 1,000개라면 그 제곱인 백만번을 계산해야 함

https://eat-toast.tistory.com/15

 

[R code] 유저 플레이 타임(Play time) 군집화

제목은 플레이 타임 군집화라고 적었지만, 시계열 데이터에 군집화를 적용할 수 있는 방법론을 소개해드립니다. 먼저, 내용의 출처는 아래 논문이고 코드 부분은 제가 작성했습니다. 본문 내용

eat-toast.tistory.com

https://velog.io/@tjddls321/%EC%8B%9C%EA%B3%84%EC%97%B4-%EA%B5%B0%EC%A7%91

 

시계열 군집

📖 시계열 데이터를 계층적, 분할적 군집화하기 위한 방법을 간단하게 코드 위주로 각각 알아봅시다. 군집화 가능한 시계열 데이터의 형태로 변환 기존 데이터는 각 컬럼이 각 집단의 시계열

velog.io

R로 계층적 군집분석 실습 해보기

DTW 개념 공부


 

Comments