Clustering

진수·2023년 10월 17일
0

Pytorch

목록 보기
4/4
post-thumbnail

K-Mean Clustering

주어진 데이터셋을 이용하여 몇 개의 클러스터를 구성할 지 사전에 알 수 있을때 사용

K-평균 군집화는 비지도 학습에 속한다. 비지돟 가습에는 크게 군집, 차원축소 등등 여러가지가 있다. K-평균 군집화는 데이터를 입력받아 소수의 그룹으로 묶는 알고리즙이다. 레이블(정답)이 없는 데이터를 입력받아 각 데이터에 레이블을 할당해서 군집화를 수행하는데, 학습 과정은 다음과 같다.

  1. 중심점 선택 : 랜덤하게 초기 중심점(centroid)을 선택한다.
  2. 클러스터 할당 : K개의 중심점과 각각의 개별 데이터 간의 거리를 측정한 후, 가장 가까운 중심점을 기준으로 데이터를 할당한다. 이 과정을 통해 클러스터가 구성된다.
  3. 새로운 중심점 선택 : 클러스터마다 새로운 중십점을 계산한다.
  4. 범위 확인(convergence) : 선택된 중심점에 더 이상의 변화가 없다면 진행을 멈춘다 만약 계속 변화가 있다면 2~3과정을 반복한다.

참고로 K-평균 군집화는 데이터가 비선형이거나 다른크기의 또는 군집마다 밀집도가 다를 때 원하는 결과와 다른 결과를 얻지 못할 수 있어서 주의가 필요하다.

Data-Based Spatial Clustering of Application with Noise(DBSCAN)

K-평균 군집화와는 다르게 사전에 클러스터의 숫자를 알지 못할 때 사용하면 유용하다. 또한, 주어진 데이터에 이상치가 많이 포함되어 있을 때 사용하면 좋다.

밀도기반 군집 분석(Density-Based Spatial Clustering of Applications with Noise, BDSCAN)은 일정 밀도 이상을 가진 데이터를 기준으로 군집을 형성하는 방법이다.

노이즈에 영향을 받지 않으며, K-평균 군집화에 비해 연산량은 많지만 K-평균 군집화가 잘 처리하지 못하는 오목 또는 볼록한 부분을 처리하는데 유용하다.

노이즈와 이상치의 차이
노이즈는 주어진 데이터셋과 무관하거나 무작위성 데이터로 전처리 과정에서 제거해야 할 부분이다. 이상치는 관측 된 데이터 범위에서 많이 벗어난 아주 작은 값이나 아주 큰 값을 의미한다.

DBSCAN방식의 절차를 알아보자.

1. 엡실론 내 점 개수 확인 및 중심점 결정

반지름을 엡실론이라고 하고, 가운데 빨간 점을 시작점이라 하자.
zluster은 epsilon안에 m(minPts)개의 점이 있으면 하나의 군집으로 인식한다고 할 때, 이때 엡실론 내에 점(데이터)m개를 가지고 있는 점(빨간점들)을 중심점(core point)라고 한다. 예를 들어 minPts가 5인경우가 다음의 그림과 같다. (cluster 1)
그러면 빨간 점들이 core point가 된다.

2. 군집 확장
cuslter 1에서 새로운 군집을 형성후 주변 P1과 P2를 corepoint로 가정하고 이를 주어진 밀도(epsilon안에 몇개의 점이 있는지)를 만족하면 이를 군집에 포함한다.
(cluster 2)

3. 1~2단계 반복
1~2단계를 더이상 새로운 core point를 정의할 수 없을 때 까지 반복한다.

4. 노이즈 정의
이렇게 형성된 군집들에 포함되지 않는 점(데이터)를 노이즈로 간주한다.

profile
Hey! 모두들 안녕!

0개의 댓글

관련 채용 정보