KMedoids Operator


Operator 설명

Data object Distance to
Index Xi c1= (3,4) c2= (7,4)
1 (2,6) 3 7
2 (3,4) 0 4
3 (3,8) 4 8
4 (4,7) 4 6
5 (6,2) 5 3
6 (6,4) 3 1
7 (7,3) 5 1
8 (7,4) 4 0
9 (8,5) 6 2
10 (7,6) 6 2
Cost 11 9
C1, C2와의 거리 계산 비용이다. X(2, 6)은 C1에 할당하게 된다. 즉 비용이 적으면 근접하다고 판단된다.(거리계산은 Manhattan 측정 방식 사용)

Operator 파라미터 설명

작동 순서

  1. 입력 DataFrame의 유효성 검사를 진행한다. (K값, Numeric Columns)
  2. 임의의 KMedoids 개수를 할당한다.
  3. 총 거리 비용으로 메도이드를 결정한다. (거리계산은 Manhattan 측정 방식 사용)
  4. 중심을 바꿔가며 계속 찾아나가 근접한 경우(비용이 적은) 메도이드를 변경해준다.
  5. 최종 메도이드가 결정되면 메도이드를 중심으로 근접하는 클러스터를 할당한다.
  6. 출력 DataFrame을 생성한다.

Operator 모듈 테스트 결과

입력 데이터

data1 data2
2 6
3 4
3 8
4 7
6 2
6 4
7 3
7 4
8 5
7 6

결과 데이터

index data1 data2 CLUSTER
1 2 6 0
2 3 4 0
3 3 8 0
4 4 7 0
5 6 2 1
6 6 4 1
7 7 3 1
8 7 4 1
9 8 5 1
10 7 6 1
val kMedoidsInfo = KMedoidsInfo.newBuilder()
  .setKValue(2)
  .setMaxIter(100)
  .setSeed(7)
  .build