비지도 학습
Contents
- 비지도 학습
- 클러스터링 (Clustering)
- K-means 클러스터링
- 계층적 군집 (Hierarchical Clustering)
- 클러스터링 주의점
1. 비지도 학습
- 정의 : 레이블 (정답) 없이 데이터의 구조, 패턴, 집단(잠재 서브그룹)을 찾아내는 학습
- 대표 과제 : 군집화(clustering), 차원축소(PCA 등), 밀도추정/이상치 탐지
- 출력 : “정답 예측”이 아니라 구조/요약/표현(embedding)
비지도 vs 지도학습
- 지도학습 : 입력 + 라벨(정답)로 예측 모델 학습
- 예 : 가격 예측, 악성 종양 예측
- 비지도학습 : 입력만으로 구조 학습
- 예 : 고객 세그먼트
2. 클러스터링(Clustering)
데이터 안에서 하위 집단(클러스터)을 찾는 기법들의 총칭
집단 내부는 서로 유사, 집단 간은 상이하도록 데이터를 분할
- 집단 내부 : 비슷한 성격끼리 묶이도록 만드는 것
- 집단 사이 : 서로 다른 부류는 확실히 다르게 구분
특성에 따라 클러스터가 잘 안 보이거나, 알고리즘마다 결과가 달라질 수 있음
두 가지 대표 클러스터링 기법
- K-평균(K-means) : K(클러스터 수)를 미리 정해 분할
- 계층적 군집(Hierarchical) : K를 사전에 고정하지 않음
3. K-means 클러스터링
- 패널 : K=2,3,4에서 각 K-means 결과 (점 색상=할당된 클러스터)
- 클러스터 결과에서 특정 색상은 의미가 없고, 점들이 다른 색이라는 것은 서로 다른 클러스터에 속해있다는 의미
K-means의 표기 (군집 집합)
- 관측치 인덱스 집합을 라 하면: (각 관측치는 적어도 하나의 군집에 속함)
- 모든 서로 다른 클러스터 에 대해
- K-means는 모든 데이터를 겹치지 않게(K개 군집이 서로 겹치지 않음) 빠짐없이(K개 군집 중 하나에는 반드시 포함) 정확히 하나의 군집에만 나누는 알고리즘이다.
핵심 아이디어
- 좋은 군집화 = 클러스터 내부 변동(Within-Cluster Variation)이 작은 분할
- 목표 : 클러스터 거리 & 차이의 합이 최소가 되도록 데이터를 나누는 것 -> ‘그룹 안에서 얼마나 모여 있는지’를 기준으로 K개의 그룹을 만드는 알고리즘
K-means 알고리즘
- 초기화 : 관측치들에 무작위로 1…K 클러스터를 임시 부여
- 반복(할당이 더 이상 바뀌지 않을 때까지) : 2a. 각 클러스터의 중심(centroid) 계산(특성 평균 벡터) 2b. 각 관측치를 가장 가까운 중심의 클러스터에 재할당 (거리 예=유클리드)
K-means 알고리즘 특성
- 중심점과의 평균 거리가 계속 줄어들기 때문에 매 반복마다 결과는 더 좋아짐
- 하지만 최적 해를 항상 찾는 건 아님 -> 초기값에 따라 지역 최솟값으로 수렴 가능 (지역 최소값[Local minimum]문제)
K-means 클러스터링에서 초기값의 영향
- 서로 다른 초기 레이블에서 최종 분할과 목표값(패널 상단 숫자)이 달라짐
- 초기화의 중요성 : 여러 번 시도 권장
4. 계층적 군집(Hierarchical Clustering)
K-means 클러스터링 vs 계층적 군집(Hierarchical Clustering)
- K-means는 클러스터 수 K를 미리 지정해야 하는 단점이 존재함
- 계층적 군집은 K를 고정하지 않고 전체 구조를 덴드로그램으로 제공
계층적 군집 결과 예시
- 덴드로그램에서 수평선 높이(거리)를 기준으로 가위질하여 K개 군집을 얻음
계층적 군집 알고리즘(상향식)
- n개 관측에 대해 쌍별 비유사도 계산, 각 관측치를 하나의 클러스터로 시작
- i개 클러스터 간 쌍별 비유사도를 모두 계산해 가장 유사한 두 클러스터를 병합
- 병합 후 남은 i-1개 클러스터 사이의 새 비유사도를 다시 계산
계층적 군집 병합 진행 예
- 데이터들이 점차 큰 클러스터로 합쳐지는 과정
- 매 단계에서 클러스터들끼리의 병합이 이루어짐
- 1개의 단일 클러스터가 될 때까지 진행
계층적 군집의 계산량
매 단계에서 모든 클러스터 쌍 간의 거리를 계산해야 함. 데이터의 수가 많은 경우 K-means에 비하여 계산량이 많음
링크(link)의 유형
- Single(최소 거리) 링크 : 두개 클러스터 내 데이터 쌍별 거리 중 최소값을 군집 간 거리로
- Complete(최대 거리) 링크 : 두개 클러스터 내 데이터 쌍별 거리 중 최대값을 군집 간 거리로
- Average(평균 거리) 링크 : 두개 클러스터 내 데이터 쌍별 거리의 평균을 군집 간 거리로
링크에 따라 결과가 달라진다
- 같은 데이터라도 링크 선택에 따라 클러스터링 결과(덴드로그램)가 달라질 수 있음
- 하나의 링크만 시도하는 것이 아니라 다른 종류의 링크도 사용 권장
클러스터링 시 주의점
클러스터링 체크리스트
- 스케일링 : 표준화 (평균 0, 표준편차 1로 입력 변수 변환)가 필요한가? (맞다면, 변수 단위 차이 영향 큼)
- 몇 개의 클러스터가 적합한지? (K-means : 계층적 모두 어려운 문제, 합의된 정답 없음)
- 단일 시도가 아닌 여러 번 시도 권장됨