데이터 군집화 - 개념

shyoon·2023년 6월 30일
0

머신러닝

목록 보기
5/11

✍데이터 군집화란?

비지도 학습의 한 종류로, 데이터 집합에서 유사한 속성을 갖는 샘플들을 묶어 k개 군집(cluster)으로 나누는 것

  • 비지도 학습이므로 X에 대한 Y가 따로 라벨링 되어있지 않다.
  • 동일 집단 내 관측치들은 서로 유사할수록 좋다.
  • 다른 집단 내 관측치들은 서로 다를수록 좋다.

활용 분야

  • 고객 군집 구분 및 타겟 마케팅

    1. 지역 기반 군집화

      고객들의 지역 정보를 기반으로 군집화 수행. 특정 지역의 문화, 관심사, 선호도 등을 고려하여 상품 및 광고를 개인화하고, 지역적인 특성에 맞춘 마케팅 채널을 선택 가능

    2. 구매 패턴 군집화

      고객들의 구매 기록이나 행동 패턴을 분석하여 군집화 수행. 비슷한 상품 카테고리를 구매하는 고객들을 하나로 묶어 분석하여 해당 그룹에 맞춤형 마케팅 전략 수립 가능. 이에 따라 개별 고객에게 추천 시스템을 제공할 수 있다.

    3. 소셜 미디어 군집화

      고객들의 소셜 미디어 행동을 분석하여 군집화 수행. 예를 들어 고객의 인스타그램 팔로우 등을 분석하여 특정 주제에 관심을 가진 고객들을 군집화 하여 해당 주제에 대한 콘텐츠 마케팅 전략 수립 가능

  • 이미지 분류

    1. 비슷한 특징의 이미지 그룹화

      클러스터링을 이용하여 비슷한 특징을 가진 이미지들을 그룹화하여 컴퓨터 비전 분야에서 객체 감지나 객체 인식같은 작업을 수행할 수 있다.

    2. 이미지 검색

      비슷한 주제나 컨텍스트를 가진 이미지들을 클러스터링하여 사용자가 특정 이미지를 찾을 때 비슷한 이미지를 함께 제공하여 이미지 탐색을 더 쉽게 해줄 수 있다.

    3. 이미지 분할 및 세그멘테이션

      이미지를 작은 세그먼트로 나누어 각각을 비슷한 특징을 가진 그룹으로 클러스터링 하여 이미지에서 객체나 배경을 분리하거나, 특정부분을 강조하는 작업에 클러스터링을 활용할 수 있다.

  • 지리적 데이터 분석

    1. 위치 기반 서비스 분석

      사용자들의 위치 데이터를 클러스터링하여 특정 지역의 사용자 그룹 식별. 이를 통해 서비스 영역의 세분화, 효율적인 배달 경로 계획, 지역별 마케팅 전략 수립 가능

    2. 인구 통계와 주거 분석

      특정 도시의 인구 데이터를 클러스터링하여 비슷한 특성을 가진 인구 그룹을 형성할 수 있다. 이를 통해 인구 통계적 특성 파악, 주거 구조, 소비 패턴, 생활 습관에 대한 통찰력 획득이 가능하다.

    3. 위험 지역 식별

      자연 재해 발생이나 범죄 발생과 같은 위험 요인에 대한 데이터를 클러스터링하여 위험 지역과 안전 지역 구분 가능


군집화 수행 절차

  • 예측, 분류와 유사한 절차를 가짐
  1. 어떤 변수를 사용할 것인가?
  2. 어떤 알고리즘을 사용할 것인가?
  3. 어떻게 군집화 결과를 평가할 것인가?
  4. 어떻게 결과를 보여줄 것인가?

군집화 기법 분류

  • 분리형 군집화(Partitional Clustering Algorithms)

    • 중심 기반(Center-Based Clustering)
      • K-Means Algorithm
      • EM-Clustering
    • 밀도 기반(Density-Based Clustering)
      • DBSCAN
  • 계층적 군집화

    • 상향식 계층적 군집화(Agglomerative Hierarchical Clustering)
    • 하향식 계층적 군집화(Divisive Hierarchical Clustering)

유사도 측정

대다수 군집화 알고리즘은 거리 척도 기반으로 관측치 간의 유사도 측정(거리 멀수록 유사도 낮음)

  • 유클리디안 거리(Euclidean Distance)

    d(X,Y)=i=1p(xiyi)2d_{(X,Y)} = \sqrt{\displaystyle\sum_{i=1}^{p}(x_i-y_i)^2}
    • 일반적으로 가장 많이 사용하는 거리 척도
    • 서로 다른 관측치 X, Y 값 간 차이 제곱합의 제곱근
    • 두 관측치 사이의 직선 거리

  • 맨하탄 거리(Manhattan Distance)

    dManhattan(X,Y)=i=1pxiyid_{Manhattan(X,Y)} = \sum_{i=1}^p\vert x_i - y_i\vert
    • X에서 Y로 이동 시 각 좌표축 방향으로만 이동할 경우에 계산되는 거리


  • 마할라노비스 거리(Mahalanobis Distance)

    dMahalanobis(X,Y)=(XY)T 1(XY) where 1=Inverse of covariance matrixd_{Mahalanobis(X,Y)} = \sqrt {(X-Y)^T\sum\ ^{-1}(X-Y)} \\\ \\ where \sum\ ^{-1} = Inverse\ of\ covariance\ matrix
    • X변수 내 분산, 변수 간 공분산을 모두 반영하여 X,Y 간 거리를 계산
    • 데이터의 공분산행렬이 단위행렬일 경우 유클리디안 거리와 동일


군집화 평가 방법

분류/회귀 모델과는 다르게 모든 상황에서 적용 가능한 평가법이 존재하지 않고 새로운 데이터 셋이 들어올 때마다 달라진다.

  • External
    정답 레이블과의 비교를 통해 성능을 평가하는 방법으로 실제로는 정답 레이블이 주어지지 않기 때문에 현실적으로 불가능

  • Internal
    군집이 얼마나 컴팩트한가에 초점을 둔 평가 방법으로 SSE(Sum of Squared Error) 이 속한다.

    SSE=i=1KxCidist(x,ci)2SSE = \sum_{i=1}^K\sum_{x\in C_i} dist(x,c_i)^2
  • relative
    군집이 얼마나 컴팩트하며, 군집끼리 얼마나 다른가를 동시에 고려하여 평가하는 방법으로 Silhouette score 이 있다.

    a(i)a(i) = 관측치 ii로부터 같은 군집 내에 있는 모든 다른 개체들 사이의 평균 거리
    b(i)b(i) = 관측치 ii로부터 다른 군집 내에 있는 개체들 사이 평균 거리 중 최솟값 일 때,

    s(i)=b(i)a(i)max{a(i),b(i)},  1s(i)1,  Sˉ=1ni=1nS(i)s(i) = {b(i) - a(i) \over max\{{a(i), b(i)}\}}, \\\ \\\ -1 \le s(i) \le 1, \\\ \\\ \bar S = {1\over n}\sum_{i=1}^nS(i)
profile
큰 사람이 되겠어요

0개의 댓글