Machine Learning Algorithm 중 하나인 Clustering에 대해 알아보겠습니다.
1. 군집화 (Clustering) 란?!
- 어떤 데이터가 있을 때 그 데이터가 어떻게 서로 무리(군집)를 지었는지 패턴을 알아보는 것.
- 클러스터란 비슷한 특성을 가진 데이터들의 집단
- 목적에 따라(마케팅, 데이터 분석용도 등)군집 나누기는 달라질 수 있음.
- "거리"의 개념으로 군집을 정의함
ex) 비슷한 아이들은 거리가 가깝고, 다른 아이들은 거리가 멀다.
2. 거리행렬과 두 점 사이의 거리를 계산하는 방법
- 거리행렬 : 두 점 사이의 거리를 배열하여, 행렬로 표시한 것
- 두 점 사이의 거리를 계산하는 방법
1) 최단 연결법 (Single Linkage)
데이터 A 와 군집 C와의 거리, 데이터 B와 군집 C와의 거리 중 최소값을 선정함.
거리행렬 예시를 통해서 최단 연결법을 수행하면 아래와 같이 가능하다.
① 개체 개수만큼의 군집 수로부터 시작한다. 가장 거리가 가까운 쌍을 찾는다.
이므로 5번 개체와 3번 개체를 묶어 군집(35)으로 한다.
② 군집 (35)와 나머지 개체 1, 2, 4와의 거리를 계산해서, 4개 군집 간의 거리행렬은 다음과 같이 구해진다.
위의 거리행렬로부터 (35)와 (1)이 가장 가까우므로 같은 군집 (1(35))로 묶인다.
③ 군집(1(35))와 나머지 개체 2, 4와 의 거리를 계산하여 동일하게 거리행렬을 구하면 행렬을 줄여서 볼 수 있다.
그리고 구해진 행렬을 통해 개체 2와 4가 가장 가까우므로 군집(24) 로 묶을 수 있다.
(행렬..수식 만드는 게... 너무... 힘이 들어서 생략하겠다. 다 알 꺼라 믿어 의심치 않는다!! ㅎㅎ)
④ 이렇게 만든것을 덴드로그램으로 그려보면 좀 더 쉽게 알 수 있다
(덴드로그램은 뒤에 설명하겠습니다.)
2) 최장 연결법 (Complete Linkage)
데이터 A 와 군집 C와의 거리, 데이터 B와 군집 C와의 거리 중 최댓값을 선정함.
(최단 연결법과 동일한 방법으로 해보면 된다. 예시 생략!)
최단 연결법의 ①까지는 동일하고 ②번부터는 min 값이 아닌 Max 값을 찾아서 행렬을 만들면 된다.
찾는 방법은 동일하다.
3) 평균 연결법 (Average Linkage)
(군집(AB)에 있는 모든 데이터와 군집(C)의 모든 데이터의 거리의 합) / (군집(AB)의 크기 x 군집(C)의 크기)
최단 연결법의 ①까지는 동일하고 ②번부터는 min 값이 아닌 Average 값을 찾아서 행렬을 만들면 된다.
찾는 방법은 동일하다.
4) 중심 연결법 (Centroid Linkage)
군집의 중심간의 거리를 이용하는 방법으로, 군집 중심은 가중평균으로 구한다.
5) 워드 연결법 (Ward Linkage)
Ward(1963)는 군집내 제곱합 증분과 군집 간 제곱합을 고려한 계층적 군집 방법을 제안. 군집 간 정보의 손실을
최소화하도록 군집화를 하는데 여기서 군집간의 정보란 편차 제곱합 ESS (error sum of squares)로 나타낸다.
3. 종류
1) 덴드로그램
- 덴드로그램은 각 단계에서 관측치의 군집화를 통해 형성된 그룹과 이들의 유사성 수준을 표시하는 트리 다이어그램.
- 유사성 수준은 수직 축을 따라 측정되거나 사용자가 거리 수준을 표시할 수 있는데
다른 관측치는 수평 축을 따라 나열됨.
- 데이터 하나하나마다의 거리를 구하는 방법으로 데이터가 많아지면 메모리 부하가 많이 걸림
(데이터 수)^2
- 그래서 다른 방법들이 사용됨(K-Means, K-Midian, DBscan 등등)
2) K-Means
- 주어진 데이터를 k개의 클러스터로 묶는 알고리즘 (평균 중심점 이용)
- 여기서 클러스터의 수 K는 엔지니어가 정의해 줘야함.
특이치에 취약한 면이 있어 K-Midian(중간값 사용) 방법을 사용하면 덜 민감하게 할 수 있음
역시!! 위키 너가 이겼다!
3) DBSCAN (밀도기반 클러스터링)
- DBSCAN (Density-based spatial clustering of applications with noise)
- K-Means나 K-Midian 클러스터링의 경우 군집 간의 거리를 이용하여 클러스터링을 하는 방법인데 반해
DBSCAN은 점이 세밀하게 몰려 있어서 밀도가 높은 부분을 클러스터링 하는 방식이다.
- 어느 점을 기준으로 반경 x내에 점이 n개 이상 있으면 하나의 군집으로 인식하는 방식.
즉. 한 핵심 벡터에 대해 접근 가능한 모든 데이터 벡터들의 집합을 의미함.
- K-Means와 같이 클러스터의 수를 정하지 않아도 된다.
- 클러스터의 밀도에 따라서 클러스터를 서로 연결하기 때문에 기하학적인 모양을 갖는 군집도 잘 찾을 수 있음.
(노이즈에 민감하지 않음, 밀도를 이용하기 때문에)
※ 여기서 말하는 노이즈는 어떠한 군집에도 속하지 않는 데이터 집합을 말함.
4) K 최근접 이웃 알고리즘, clarans 등등이 있으나, 공부를 다하지 못했다...
(이 부분은 공부해서 보강해 보아야 할 것 같다.. 의지가 오늘은 역시나 여기까지였다)
============================================================================
'데이터 및 Programing > Part1. Basic Knowledge' 카테고리의 다른 글
[ML Algorithm] 전이 학습(Transfer Learning) (0) | 2022.04.14 |
---|---|
[ML Algorithm] 딥러닝(Deep Learning) 합성곱 신경망(CNN, Convolution Neural Network, 패딩, 풀링, 채널) (0) | 2022.03.20 |
[ML Algorithm] Decision Tree (머신러닝, 의사결정나무, 엔트로피, 가지치기) (0) | 2022.01.29 |
머신러닝, 딥러닝 학습 , 최적화(Optimization)에 대해서 (SGD, Momentum, RMSProp, Adam) (0) | 2022.01.15 |
딥러닝(Deep Learning)의 정의와 역사, 신경망의 정의와 활용 (0) | 2022.01.11 |