더북(TheBook)

최적 클러스터로 개선시키기

앞서 설명한 경험에 따른 법칙(rule of thumb method)을 사용하면 최적화하기 쉽다. 유닉스의 wc 명령으로 개체 인스턴스의 수를 알 수 있다.


wc kmeansdata.csv
     75        76     494 kmeansdata.csv

 

74행이 있는데(xy 라벨이 있는 맨 윗줄은 제외), 어림으로 계산하여 75를 2로 나누면 37.5, 제곱근은 6.12다.

명령줄을 수정하여 타깃 클러스터의 개수(-N 플래그)와 난수 시드값(-S 플래그)을 추가할 수 있다.


java -cp /path/to/weka.jar weka.clusterers.SimpleKMeans -t kmeansdata.arff -N 6 -S 42

 

이번 출력의 결과는 비슷하지만, 클러스터는 더 많다.


kMeans
======
 
Number of iterations: 3
Within cluster sum of squared errors: 0.523849925862059
Missing values globally replaced with mean/mode

Cluster centroids:
                         Cluster#
Attribute  Full Data    0       1          2        3       4        5
            (75)      (10)    (12)       (15)      (5)    (10)    (23)
========================================================================
x         54.88      11.8    105.0833   68.9333    81.6   28.5    43.913
y         92.0267    65.9    118.3333   19.4      106.6   64    146.0435
 
=== Clustering stats for training data ===
 
Clustered Instances
0     10 ( 13%)
1     12 ( 16%)
2     15 ( 20%)
3      5 (  7%)
4     10 ( 13%)
5     23 ( 31%)

 

이제 우리는 클러스터가 여섯 개 있으며, 클러스터는 할당이 잘 정의된 개체로 구성되어 있다. 유일한 문제는 개체가 어느 클러스터에 속하는지 모르고 있다는 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.