[프로그래머를 위한 데이터마이닝] #3. 클러스터링(Clustering)이란

개요

분류(Classification)에서는 데이터셋의 목표 변수(또는 클래스 변수)가 이미 알려져 있다. 예를 들어 정상/비정상, 충성고객/일반고객/이탈가능고객 등과 같은 형태로 목표 변수가 분류될 수 있다. 반면에 클러스터링은 목표변수가 없는 데이터셋에 대해 유사한 개체를 서로 그룹화하는 방법이다.

다시 말해 분류는 클래스가 알려져 있는 개체에 대해, 클래스가 이미 알려진 개체로부터 만들어진 모델을 사용하여 클래스를 예측하는 방법이다. 이 경우 분류는 교사 학습(supervised learning)이라고 부른다. 반면에 클러스터는 비교사 학습(unsupervised learning)에 포함된다.

클러스터링은 각 개체간의 유사도(similarity)를 기반으로 하며, 서로 유사한 개체를 동일한 그룹에 할당한다. 따라서 클러스터링을 하기 위해서는 유사도를 측정하기 위한 방법이 필수적이다.

거리(Distance)

클러스터링에서는 일반적으로 유사도보다는 비유사도(dissimilarity)를 기준으로 하며, 비유사도는 일반적으로 거리(distance)라고 부른다.

거리에 대한 수학적인 정의는 다음과 같다.

일반적으로 아래와 같은 거리 측정 방식을 활용한다.

유클리드(Euclid) 거리

p차원의 공간 위에 있는 두 점 x와 y 사이의 유클리드 거리 d(x,y)는 다음과 같다.

distance_euclidean

p=2인 경우, 즉 2차원에서 유클리드 거리는 다음과 같다.

distance_euclidean_2

민코프스키(Minkowski) 거리

민코프스키 거리는 유클리드 거리를 일반화한 것으로 다음과 같다.

distance_minkowski

마할라노비스(Mahalanobis) 거리

distance_mahalanobis

Leave a Reply

Your email address will not be published. Required fields are marked *