AIchemist

[8주차] 군집화

양윤서_Ewha 2024. 11. 11. 15:55

01 K-평균 알고리즘 이해

K-평균

  • 군집화에서 가장 일반적으로 사용됨
  • 군집 중심점(centroid)이라는 특정한 임의의 지점을 선택해 해당 중심에 가장 가까운 포인트들을 선택
  • 군집 중심점은 선택된 포인트의 평균 지점으로 이동하고 이동된 중심점에서 다시 가까운 포인트들을 선택, 다시 중심점을 이동하는 프로세스 반복적으로 수행

장점 단점
일반적인 군집화에서 가장 많이 활용
쉽고 간결
거리 기반 알고리즘으로 속성의 개수가 매우 많을 경우 군집화 정확도가 떨어짐
반복 횟수가 많을 수록 수행 시간이 매우 느려짐
몇 개의 군집을 선택해야 할지 가이드가 어려움

군집화용 데이터 생성기

  • make_blobs() : 개별 군집의 중심점과 표준 편차 제어 기능이 추가
  • make_classification() : 노이즈를 포함한 데이터를 만드는 데 유용
  • cluster_std가 작을수록 군집 중심에 데이터가 모여 있으며, 클수록 데이터가 퍼져 있음

 

02 군집 평가

대부분의 군집화 데이터 세트는 타깃 레이블을 가지고 있지 않암. 분류와 유사해 보일 수 있으나 다름. 동일한 분류 값에 속하더라도 그 안에서 더 세분화된 군집화를 추구하거나, 서로 다른 분류 값의 데이터도 더 넓은 군집화 레벨화 등의 영역을 가짐.

실루엣 분석

  • 군집화의 성능을 평가하는 대표적 방법
  • 각 군집 간의 거리가 얼마나 효율적으로 분리돼 있는지를 나타냄
  • 효율적으로 분리됨 = 다른 군집과의 거리는 떨어져 있고 동일 군집끼리는 가까움
  • 실루엣 계수: 개별 데이터가 가지는 군집화 지표. 해당 데이터가 같은 군집 내의 데이터와 얼마나 가깝고, 다른 군집의 데이터와는 얼마나 먼지 나타내는 지표
  • a(i) : 해당 데이터 포인트와 같은 군집 내에 있는 다른 데이터 포인트와의 거리를 평균한 값
  • b(i): 해당 데이터 포인트가 속하지 않은 군집 중 가장 가까운 군집과의 평균거리
  • i번째 데이터 포인트의 실루엣 계수 값 s(i) = (b(i) - a(i)) / MAX(a(i), b(i)
  • 실루엣 계수는 -1에서 1 사이의 값을 가지며 0에 가까울수록 근처의 군집과 가까움.

사이킷런 메서드

  • sklearn.metrics.silhouette_samples(X, labels, metric='euclidean', **kwds) : 각 데이터 포인트의 실루엣 계수를 계산해 반환
  • sklearn.metrics.silhouette_score(X, labels, metric='euclidean', sample_size=None, **kwds) : 전체 데이터의 실루엣 계수 값을 평균해 반환

좋은 군집화의 조건

  • 전체 실루엣 계수의 평균값이 1에 가까울수록 좋음
  • 개별 군집의 평균값의 편차가 크지 않아야 함
  • 개별 군집의 실루엣 계수 평균값이 전체 실루엣 계수의 평균값에서 크게 벗어나지 않는 것이 중요

 

03 평균 이동

평균 이동

  • 중심을 군집의 중심으로 지속적으로 움직이면서 군집화 수행
  • 중심을 데이터가 모여 있는 밀도가 가장 높은 곳으로 이동시킴
  • 확률 밀도 함수 이용 : 확률 밀도 함수가 피크인 점을 군집 중심점으로 선정
  • KDE(Kernel Density Estimation) 이용
  • 주변 데이터와의 거리 값을 KDE 함수 값으로 입력한 뒤 그 반환 값을 현재 위치에서 업데이트하면서 이동하는 방식

KDE

  • 커널 함수를 통해 어떤 변수의 확률 밀도 함수를 추정하는 대표적인 방법
  • 관측된 데이터 각각에 커널 함수를 적용한 값을 모두 더한 뒤 데이터 건수로 나눠 확률 밀도 함수를 추정
  • 확률 밀도 함수 PDF : 확률 변수의 분포를 나타내는 함수
  • 확률 밀도 함수를 알면 특정 변수가 어떤 값을 갖게 될지에 대한 확률을 알게 되므로 변수의 특성 등 많은 요소 파악
  • 대표적인 커널 함수 : 가우시안 분포 함수

x는 확률 변숫값, xi는 관측값, h는 대역폭. h는 KDE형태를 평활화 하는 데 적용되며, h에 따라 성능이 크게 좌우됨.

MeanShift 클래스 : 평균 이동 군집화를 위해 사이킷런이 제공하는 클래스

bandwidth: 가장 중요한 초기화 파라미터. h와 동일. 최적화된 bandwidth 값을 찾기 위해서 estimate_bandwidth() 함수가 제공됨

 

04 GMM(Gaussian Mixture Model)

GMM 군집화

  • 군집화를 적용하고자 하는 데이터가 여러 개의 가우시안 분포를 가진 데이터 집합들이 섞여서 생성된 것이라는 가정하에 군집화를 수행하는 방식
  • 정규 분포로도 알려진 가우시안 분포는 좌우 대칭형의 종 형태를 가짐
  • GMM은 데이터를 여러 개의 가우시안 분포가 섞인 것으로 간주하여 개별 유형의 가우시안 분포를 추출함
  • 개별 군집 내의 데이터가 원형으로 흩어져 있는 경우에 매우 효과적

모수 추정

  • 개별 정규 분포의 평균과 분산을 추정
  • 각 데이터가 어떤 정규 분포에 해당되는지의 확률을 추정
  • 모수 추정을 위해 EM(Expectation and Maximization) 방법을 적용
  • GaussianMixture 클래스가 지원됨

n_components : GaussianMixture 객체의 가장 중요한 초기화 파라미터. gaussian mixture의 모델의 총 개수

GMM과 K-평균의 비교

  • 원형 범위의 데이터 경우 KMeans가 효과적
  • KMeans로 수행할 경우, 원형이 아닐 경우 원하는 방향으로 구성되지 않음
  • GMM의 경우 군집이 target 값과 잘 매핑됨
  • GMM은 KMeans보다 유연하게 적용됨, 하지만 오래 걸

 

05 DBSCAN

DBSCAN(Density Based Spatial Clustering of Applications with Noise)

  • 밀도 기반 군집화의 대표적인 알고리즘
  • 간단하고 직관적임에도 복잡한 기하학적 데이터 세트에도 효과적임
  • 입실론 주변 영역 ( epsilon) : 개별 데이터를 중심으로 입실론 반경을 가지는 원형의 영역
  • 최소 데이터 개수 ( min points) : 개별 데이터의 입실론 주변 영역에 포함되는 타 데이터의 개수

데이터 포인트들의 정의

  • 핵심 포인트 : 주변 영역 내에 최소 데이터 개수 이상의 타 데이터를 가지고 있을 경우
  • 이웃 포인트 : 주변 영역 내에 위치한 타 데이터
  • 경계 포인트 : 주변 영역 내에 최소 데이터 개수 이상의 이웃 포인트를 가지고 있지 않지만 핵심 포인틀르 이웃 포인트로 가지고 있는 데이터
  • 잡음 포인트 : 최소 데이터 개수 이상의 이웃 포인트를 가지고 있지 않으며, 핵심 포인트도 이웃 포인트로 가지고 있지 않은 데이터

DBSCAN 클래스

  • eps: 입실론 주변 영역의 반경
  • min_samples : 핵심 포인트가 되기 위해 입실론 주변 영역 내에 포함돼야 할 데이터의 최소 개수

 

06 군집화 실습 - 고객 세그먼테이션

고객 세그먼테이션 ( Customer Segmentation)

  • 다양한 기준으로 고객을 분류하는 기법
  • CRM 이나 마케팅의 중요 기반 요소
  • 주요 목표는 타깃 마케팅 : 고객을 여러 특성에 맞게 세분화해서 그 유형에 따라 맞춤형 서비스 제공

RFM 기법

  • Recency : 가장 최근 상품 구입 일에서 오늘까지의 기간
  • Frequency :상품 구매 횟수
  • Monetary value : 총 구매 금액

고객 세그먼테이션의 경우, 사전 데이터 작업이 매우 중요함. null값이나, 고려하지 않아도 되는 정보, 상식적으로 말이 안되는 피처 등을 정리할 것. 개인 고객의 주문과 소매점의 주문과 같은 요소도 고려해야 함.

 

07 정리

K-평균 : 거리 기반으로 군집 중심점을 이동시키면서 군집화 수행. 매우 쉽고 직관적임. 복잡한 구조를 가지는 데이터 세트에 적용하기에는 한계. 군집의 개수를 최적화하기 어려움. 군집이 잘 되었는지의 평가를 위해 실루엣 계수를 사용.

평균 이동: 데이터가 모여 있는 밀도가 가장 높은 쪽으로 군집 중심점을 이동하며 군집화 수행. 컴퓨터 비전 영역에서 이미지나 영상 데이터에서 특정 개체 구분, 움직임 추적에 뛰어난 역할 수행

GMM : 적용하고자 하는 데이터가 여러 개의 가우시안 분포를 모델로 섞어서 생성된 모델임을 가정해 수행. 전체 데이터 세트에서 서로 다른 정규 분포 형태를 추출해 각각 군집화. 유연하게 다양한 세트에 적용. 수행 시간이 오래 걸림.

DBSCAN: 밀도 기반 군집화. 입실론 주변 영역 내에 포함되는 최소 데이터 개수의 충족 여부에 따름. 특정 핵심 포인트에서 직접 접근이 가능한 다른 핵심 포인트를 서로 연결하며 군집화를 구성. 간단하고 직관적임. 데이터의 분포가 복잡한 데이터 세트에도 효과적임.

 

'AIchemist' 카테고리의 다른 글

[9주차] 텍스트 분석  (0) 2024.11.18
[8주차] Discuss Question  (2) 2024.11.11
[7주차] Discuss Question  (0) 2024.11.04
[7주차] 차원 축소  (0) 2024.11.04
[6주차] Discuss Question  (0) 2024.10.28