dbscan
잡음이 있는 응용 사례의 밀도 기반 공간 군집화(DBSCAN)
구문
설명
예제
입력 인수
이름-값 인수
출력 인수
세부 정보
팁
다수의
epsilon값을 반복 처리할 때 속도를 높이려면D를dbscan의 입력값으로 전달해 보십시오. 이 방식을 사용하면 함수가 반복의 모든 점에서 거리를 계산할 필요가 없습니다.pdist2를 사용하여D를 미리 계산하는 경우,pdist2의'Smallest'또는'Largest'이름-값 쌍 인수를 지정하여D의 열을 선택하거나 정렬하지 마십시오.dbscan은D가 정사각 행렬이어야 하기 때문에 n개보다 적은 거리를 선택하면 오류가 발생합니다.D의 각 열에서 거리를 정렬하면D의 해석에 손실이 발생하고dbscan함수에서 사용할 경우 의미 없는 결과가 나올 수 있습니다.효율적인 메모리 사용을 위해,
D가 클 경우에는D를 숫자형 행렬이 아닌 논리형 행렬로dbscan에 전달해 보십시오. 기본적으로, MATLAB®은 숫자형 행렬의 각 값은 8바이트(64비트)를 사용하여 저장하고, 논리형 행렬의 각 값은 1바이트(8비트)를 사용하여 저장합니다.minpts의 값을 선택하려면 입력 데이터의 차원 수에 1을 더한 것보다 크거나 같은 값을 고려하십시오[1]. 예를 들어, n×p 행렬X의 경우'minpts'를 p+1과 같거나 더 큰 값을 설정합니다.epsilon의 값을 선택할 때 가능한 한 가지 전략은X에 대한 k-거리 그래프를 생성하는 것입니다.X의 각 점에 대해 k번째로 가까운 점까지의 거리를 구하고, 정렬된 점을 이 거리에 따라 플로팅합니다. 일반적으로 그래프에는 무릎(knee)이 포함됩니다. 무릎에 해당하는 거리는 점이 이상값(잡음) 영역으로 벗어나기 시작하는 영역이기 때문에 일반적으로epsilon으로 선택하는 데 적합합니다[1].
알고리즘
DBSCAN은 데이터에서 군집과 잡음을 발견하도록 설계된 밀도 기반 군집화 알고리즘입니다. 알고리즘은 핵심점, 경계점, 잡음점이라는 세 종류의 점을 식별합니다[1].
dbscan함수는epsilon및minpts에 지정된 값에 따라 다음과 같이 알고리즘을 구현합니다.입력 데이터 세트
X에서 첫 번째 레이블이 없는 관측값 x1을 현재 점으로 선택하고, 첫 번째 군집 레이블 C를 1로 초기화합니다.현재 점의 엡실론 이웃
epsilon내에 있는 점 집합을 구합니다. 이 점들이 이웃입니다.이웃 개수가
minpts보다 적으면 현재 점을 잡음점(또는 이상값)으로 레이블 지정합니다. 4단계로 이동합니다.참고
dbscan은 나중에 잡음점이X의 다른 점에서epsilon과minpts로 설정된 제약 조건을 충족하면, 해당 잡음점을 군집에 재할당할 수 있습니다. 이렇게 점을 재할당하는 과정은 군집의 경계점에서 발생합니다.그렇지 않으면, 현재 점을 군집 C에 속하는 핵심점으로 레이블 지정합니다.
각 이웃(새로운 현재 점)에 대해 반복 처리하고, 현재 군집 C에 속한다고 레이블 지정할 수 있는 새로운 이웃이 더 이상 발견되지 않을 때까지 2단계를 반복합니다.
X에서 레이블 지정되어 있지 않는 다음 점을 현재 점으로 선택하고 군집 개수를 1만큼 늘립니다.X의 모든 점이 레이블 지정될 때까지 2~4단계를 반복합니다.
두 군집이 서로 다른 밀도를 가지면서 가까이 있는 경우, 즉 두 경계점(각 군집에서 하나씩) 사이의 거리가
epsilon보다 작으면dbscan은 두 군집을 하나로 병합할 수 있습니다.모든 유효한 군집이 언제나 최소
minpts개의 관측값을 포함하는 것은 아닙니다. 예를 들어,dbscan은 가까이 있는 두 군집에 속한 경계점을 식별할 수 있습니다. 이런 상황에서 알고리즘은 첫 번째로 발견된 군집에 경계점을 할당합니다. 결과적으로 두 번째 군집은 여전히 유효한 군집이지만,minpts개보다 적은 관측값을 가질 수 있습니다.
참고 문헌
[1] Ester, M., H.-P. Kriegel, J. Sander, and X. Xiaowei. “A density-based algorithm for discovering clusters in large spatial databases with noise.” In Proceedings of the Second International Conference on Knowledge Discovery in Databases and Data Mining, 226-231. Portland, OR: AAAI Press, 1996.
확장 기능
버전 내역
R2019a에 개발됨





