DBSCAN Operator


Operator 설명

Operator 파라미터 설명

작동순서

  1. 입력 DataFrame의 유효성 검사를 진행한다. (Epsilon, min point, Numeric Columns)
  2. 변수 초기화를 한다. (visitList, noistList, clusterMap)
  3. Row 데이터의 이웃하는 목록을 가져온다.
  4. 이웃하는 목록 리스트로 또 다시 이웃하는 목록 리스트를 구해온다. 방문기록을 남긴다.
  5. 결과를 클러스터에 할당하거나 noise 기록을 한다
  6. 모든 방문 기록이 완료 될 때까지 3 ~ 5 과정을 반복한다.
  7. 출력 DataFrame을 생성한다.

Operator 모듈 테스트 결과

입력 데이터

index data1 data2
1 6.848934849 3.158069218
2 -0.943968337 22.91433149
3 -1.175376171 23.9929549
4 -0.728804819 23.59998941
5 -0.554106973 23.14728525
6 -0.50858251 23.55578863
7 -0.655966008 24.12991918
8 -0.828753893 23.06295102
9 -0.906446078 23.63442066
10 -1.175471759 23.23088862
11 -0.586424383 23.56802483
12 6.029774804 3.337247273
13 -1.022162431 23.21138139
14 -0.665984656 23.20667453
15 -0.578946901 23.40512492
16 -0.45042623 23.88963325
17 -0.639808699 23.55207991
18 -0.971141606 23.10933188
19 -0.866241774 22.74841298

결과 데이터

index data1 data2 CLUSTER
1 6.848934849 3.158069218 0
2 -0.943968337 22.91433149 1
3 -1.175376171 23.9929549 0
4 -0.728804819 23.59998941 1
5 -0.554106973 23.14728525 1
6 -0.50858251 23.55578863 1
7 -0.655966008 24.12991918 0
8 -0.828753893 23.06295102 1
9 -0.906446078 23.63442066 1
10 -1.175471759 23.23088862 1
11 -0.586424383 23.56802483 1
12 6.029774804 3.337247273 0
13 -1.022162431 23.21138139 1
14 -0.665984656 23.20667453 1
15 -0.578946901 23.40512492 1
16 -0.45042623 23.88963325 1
17 -0.639808699 23.55207991 1
18 -0.971141606 23.10933188 1
19 -0.866241774 22.74841298 1
val dBSCANInfo =
    DBSCANInfo.newBuilder()
    .setEps(0.5)
    .setMinPts(5)
    .build