비지도 학습


Contents

  1. 비지도 학습
  2. 클러스터링 (Clustering)
  3. K-means 클러스터링
  4. 계층적 군집 (Hierarchical Clustering)
  5. 클러스터링 주의점

1. 비지도 학습

  • 정의 : 레이블 (정답) 없이 데이터의 구조, 패턴, 집단(잠재 서브그룹)을 찾아내는 학습
  • 대표 과제 : 군집화(clustering), 차원축소(PCA 등), 밀도추정/이상치 탐지
  • 출력 : “정답 예측”이 아니라 구조/요약/표현(embedding)

비지도 vs 지도학습

image
  • 지도학습 : 입력 + 라벨(정답)로 예측 모델 학습
    • 예 : 가격 예측, 악성 종양 예측
  • 비지도학습 : 입력만으로 구조 학습
    • 예 : 고객 세그먼트

2. 클러스터링(Clustering)

데이터 안에서 하위 집단(클러스터)을 찾는 기법들의 총칭

image

집단 내부는 서로 유사, 집단 간은 상이하도록 데이터를 분할

  • 집단 내부 : 비슷한 성격끼리 묶이도록 만드는 것
  • 집단 사이 : 서로 다른 부류는 확실히 다르게 구분

특성에 따라 클러스터가 잘 안 보이거나, 알고리즘마다 결과가 달라질 수 있음

두 가지 대표 클러스터링 기법

image
  • K-평균(K-means) : K(클러스터 수)를 미리 정해 분할
  • 계층적 군집(Hierarchical) : K를 사전에 고정하지 않음

3. K-means 클러스터링

image
  • 패널 : K=2,3,4에서 각 K-means 결과 (점 색상=할당된 클러스터)
  • 클러스터 결과에서 특정 색상은 의미가 없고, 점들이 다른 색이라는 것은 서로 다른 클러스터에 속해있다는 의미

K-means의 표기 (군집 집합)

  • 관측치 인덱스 집합을 라 하면: (각 관측치는 적어도 하나의 군집에 속함)
  • 모든 서로 다른 클러스터 에 대해
  • K-means는 모든 데이터를 겹치지 않게(K개 군집이 서로 겹치지 않음) 빠짐없이(K개 군집 중 하나에는 반드시 포함) 정확히 하나의 군집에만 나누는 알고리즘이다.

핵심 아이디어

  • 좋은 군집화 = 클러스터 내부 변동(Within-Cluster Variation)이 작은 분할
  • 목표 : 클러스터 거리 & 차이의 합이 최소가 되도록 데이터를 나누는 것 -> ‘그룹 안에서 얼마나 모여 있는지’를 기준으로 K개의 그룹을 만드는 알고리즘

K-means 알고리즘

image
  1. 초기화 : 관측치들에 무작위로 1…K 클러스터를 임시 부여
  2. 반복(할당이 더 이상 바뀌지 않을 때까지) : 2a. 각 클러스터의 중심(centroid) 계산(특성 평균 벡터) 2b. 각 관측치를 가장 가까운 중심의 클러스터에 재할당 (거리 예=유클리드)

K-means 알고리즘 특성

  • 중심점과의 평균 거리가 계속 줄어들기 때문에 매 반복마다 결과는 더 좋아짐
  • 하지만 최적 해를 항상 찾는 건 아님 -> 초기값에 따라 지역 최솟값으로 수렴 가능 (지역 최소값[Local minimum]문제)
image

K-means 클러스터링에서 초기값의 영향

  • 서로 다른 초기 레이블에서 최종 분할과 목표값(패널 상단 숫자)이 달라짐
  • 초기화의 중요성 : 여러 번 시도 권장
image

4. 계층적 군집(Hierarchical Clustering)

K-means 클러스터링 vs 계층적 군집(Hierarchical Clustering)

image
  • K-means는 클러스터 수 K를 미리 지정해야 하는 단점이 존재함
  • 계층적 군집은 K를 고정하지 않고 전체 구조를 덴드로그램으로 제공

계층적 군집 결과 예시

  • 덴드로그램에서 수평선 높이(거리)를 기준으로 가위질하여 K개 군집을 얻음
image

계층적 군집 알고리즘(상향식)

image
  1. n개 관측에 대해 쌍별 비유사도 계산, 각 관측치를 하나의 클러스터로 시작
  2. i개 클러스터 간 쌍별 비유사도를 모두 계산해 가장 유사한 두 클러스터를 병합
  3. 병합 후 남은 i-1개 클러스터 사이의 새 비유사도를 다시 계산

계층적 군집 병합 진행 예

image
  • 데이터들이 점차 큰 클러스터로 합쳐지는 과정
  • 매 단계에서 클러스터들끼리의 병합이 이루어짐
  • 1개의 단일 클러스터가 될 때까지 진행

계층적 군집의 계산량

매 단계에서 모든 클러스터 쌍 간의 거리를 계산해야 함. 데이터의 수가 많은 경우 K-means에 비하여 계산량이 많음

링크(link)의 유형

  • Single(최소 거리) 링크 : 두개 클러스터 내 데이터 쌍별 거리 중 최소값을 군집 간 거리로
  • Complete(최대 거리) 링크 : 두개 클러스터 내 데이터 쌍별 거리 중 최대값을 군집 간 거리로
  • Average(평균 거리) 링크 : 두개 클러스터 내 데이터 쌍별 거리의 평균을 군집 간 거리로
image

링크에 따라 결과가 달라진다

image
  • 같은 데이터라도 링크 선택에 따라 클러스터링 결과(덴드로그램)가 달라질 수 있음
  • 하나의 링크만 시도하는 것이 아니라 다른 종류의 링크도 사용 권장

클러스터링 시 주의점

클러스터링 체크리스트

  • 스케일링 : 표준화 (평균 0, 표준편차 1로 입력 변수 변환)가 필요한가? (맞다면, 변수 단위 차이 영향 큼)
  • 몇 개의 클러스터가 적합한지? (K-means : 계층적 모두 어려운 문제, 합의된 정답 없음)
  • 단일 시도가 아닌 여러 번 시도 권장됨