EM Clustering Operator


Operator 설명

Operator 파라미터 설명

작동순서

  1. 입력 DataFrame의 유효성 검사를 진행한다. (K값, maxIter, Numeric Columns)
  2. 입력 DataFrame을 Vectors로 변환 후 featurs 칼럼에 재생성한다.
  3. Spark ml의 GaussianMixture 알고리즘을 사용한다. (expectation maximization 수행)
  4. 출력 DataFrame을 생성한다.

Operator 모듈 테스트 결과

입력 데이터

a1 a2 a3 a4
5.1 3.5 1.4 0.2
4.9 3.0 1.4 0.2
4.7 3.2 1.3 0.2
4.6 3.1 1.5 0.2
5.0 3.6 1.4 0.2
5.4 3.9 1.7 0.4
4.6 3.4 1.4 0.3
5.0 3.4 1.5 0.2
4.4 2.9 1.4 0.2
4.9 3.1 1.5 0.1
5.4 3.7 1.5 0.2
4.8 3.4 1.6 0.2
4.8 3.0 1.4 0.1
4.3 3.0 1.1 0.1
5.8 4.0 1.2 0.2

결과 데이터

index a1 a2 a3 a4 cluster
1 5.1 3.5 1.4 0.2 0
2 4.9 3.0 1.4 0.2 0
3 4.7 3.2 1.3 0.2 0
4 4.6 3.1 1.5 0.2 0
5 5.0 3.6 1.4 0.2 0
6 5.4 3.9 1.7 0.4 1
7 4.6 3.4 1.4 0.3 0
8 5.0 3.4 1.5 0.2 0
9 4.4 2.9 1.4 0.2 0
10 4.9 3.1 1.5 0.1 0
11 5.4 3.7 1.5 0.2 0
12 4.8 3.4 1.6 0.2 0
13 4.8 3.0 1.4 0.1 0
14 4.3 3.0 1.1 0.1 1
15 5.8 4.0 1.2 0.2 1
val eMClusteringInfo =
  EMClusteringInfo.newBuilder()
    .setKValue(2)
    .setMaxIter(100)
    .build