본문 바로가기

컴퓨터 과학/머신러닝

비지도학습 : 군집화

//방송통신대학교 컴퓨터과학과 2023년도 2학기 이관용 교수님의  머신러닝 수업을 기반으로 작성한 글입니다.

 

✔️ 군집화 Clustering

데이터 집합의 분포 특성을 분석하여 서로 교차하지 않는 복수 개의 부분집합으로 나누는 문제

- 응용 예 : 영상 데이터의 구분

- 대표 알고리즘 : (1) K-평균 군집화 (2) 계층적 군집화

 

✔️ K-평균 군집화

데이터 집합을 K개의 그룹으로 묶는 알고리즘

- 각 그룹은 해당 그룹 내 데이터들의 평균을 대표 벡터로 가짐

- 비지도학습이므로 처음에는 임의로 K개의 대표 벡터 선정

- (1) 데이터 집합으로부터 임의의 K개의 벡터를 선택하여 초기 대표 벡터 m1, m2, ..., mk를 생성

- (2) 각 데이터 xj에 대해 K개의 대표 벡터들과의 거리를 계산해 가장 가까운 대표벡터가 속한 클러스터로 레이블링

- (3) 각 클러스터에서 대표 벡터를 새롭게 갱신

- (4) mk와 mknew의 차이가 없을 때까지 혹은 설정된 반복횟수에 도달할 때까지 앞선 단계 반복

- 목적함수 = 각 클러스터의 분산을 모두 더한 값

- 알고리즘 상 반복에 따라 목적함수를 감소시켜서 지역 극소점을 찾음을 보장

- K 값 선정이 관건; trials and errors

 

✔️ 계층적 군집화

전체 데이터를 몇 개의 배타적인 그룹으로 나누는 대신, 큰 군집이 작은 군집을 포함하는 형태로 계층을 이루도록 군집화를 수행

- 덴드로그램 : 계층적인 군집화 결과를 보여 주는 그림

- (1) N개의 데이터가 있는 데이터 집합으로부터 각 데이터가 각각의 군집이 되도록 N개의 군집을 설정

- (2) 군집 간 거리를 계산

- (3) 거리가 가장 가까운 두 군집을 병합하고 새로운 클러스터를 생성

- (4) 오직 하나의 클러스터가 남을 때까지 반복

- 덴드로그램에서 적합한 군집의 수를 결정하는 게 관건; 클러스터간 거리가 증가하는 동안 클러스터의 수가 늘어나지 않고 일정 기간 유지되는 지점

 

 

'컴퓨터 과학 > 머신러닝' 카테고리의 다른 글

앙상블 학습  (1) 2023.12.09
데이터 표현 : 특징추출  (1) 2023.12.07
지도학습 : 회귀  (2) 2023.12.06
지도학습 : 분류  (1) 2023.12.06
머신러닝 Overview  (1) 2023.12.06