DBSCAN 클러스터링 기초개념

2019-02-25

.

그림, 실습코드 등 학습자료 출처 : https://datascienceschool.net

# DBSCAN 클러스터링

  • 데이터가 어디에 많이 모여있는가를 스캐닝해서 연결관계를 만들어가는 클러스터링 방법이다.

  • DBSCAN은 하이퍼파라미터가 2개 들어간다. 하나는 이웃을 정의할 수 있는 거리 epsilon, 나머지 하나는 코어냐 아니냐를 저의하는 minimum points라고 부르는 놈이다. 이 두개를 이용해서 데이터들을 찾아서 연결을 시키는데 연결할때 특정데이터에서 epsilon로 내가 지정한 거리만큼 원을 그린다.

  • 원을 그린다는 것은 각각의 모든 데이터간에 거리를 측정한다는 의미이다. 그 거리가 eps보다 작냐 epsilon보다 크냐를 갖다 확인을 하겠다는 것이다.

  • 특정데이터를 epsilon로 측정했는데 epsilon 내에 다른 데이터가 없다면 이런 데이터는 노이즈, 아웃라이어이다. 이런 데이터는 클러스터에 속하지 않는 데이터이다. DBSCAN에서는 어떤 클러스터에도 속하지않고 혼자 떨어진 데이터가 발생할 수 있다.

  • 특정데이터의 근처에 있는데이터를 측정을해서 이 특정데이터의 주변에 있는데이터가 많다 적다를 판단하는 기준이 있어야한다. 그 기준이 minimum points이다.

  • 어떤 특정데이터는 epsilon안에 minimum points이상의 데이터가 있는 경우도 있다. 이런경우는 core data라고 한다. 이런데이터는 클러스터 중앙에 있는 데이터라고 할 수 있다. 이렇게 중앙데이터인지 아닌지를 minpts로 판단할 수 있다.

  • 그리고 epsilon안에 데이터가 있지만 minpts보다 적은개수가 있는 경우가 있다. 그 다음단계로 core data 확장이라는 것을 한다.

  • 알고리즘 동작방식은 첨에 핵심 데이터를 찾아낸 다음에는 이 핵심 데이터의 이웃영역안에 있는 데이터를 이 핵심데이터와 연결된 고밀도 데이터로 정의한다. 고밀도 데이터의 이웃영역안에 있는 데이터도 마찬가지고 연결된 고밀도 데이터가 된다. 만약 고밀도 데이터에 더이상 이웃이 없으면 이 데이터는 경계데이터라고 하며 연결은 끝난다.

  • 요런식으로 border data까지 core data에 연결된 모든 데이터들을 하나의 클러스터링으로 판단한다. 이렇게 판단하게 되면 데이터간의 연결관계가 생기는 것이다.

  • 2차원데이터를 기준으로 데이터 모양이 동심원이던 초승달이던 상관없이 하이퍼 파라미터를 잘 정의하면 좋은 성능의 클러스터링을 수행 할 수 있는 장점이 있다.

  • DBSCAN 알고리즘 사용 시 데이터가 바뀌는 순간 클러스터링이 완전히 다 바뀌기 때문에 predict 메서드는 없다.