센트로이드 출력하기
이제 모델이 만들어졌으니 결과를 출력할 수 있다. 우선 각 클러스터 센트로이드 위치를 출력한다.
public void showCentroids(SimpleKMeans kMeans, Instances data) { Instances centroids = kMeans.getClusterCentroids(); for (int i = 0; i < centroids.numInstances(); i++) { System.out.println("Centroid: " + i + ": " + centroids.instance(i)); } }
getClusterCentroids() 메서드는 인스턴스 집합을 반환한다. 이 집합을 순회하면서 각 인스턴스의 결과를 출력한다. 클러스터가 6개이므로(경험에 따른 법칙의 계산법으로 만든) 인스턴스도 6개가 출력되어야 한다.
클러스터 정보 출력
인스턴스가 어느 클러스터에 속하는지 보여주기 위해 showInstanceInCluster()는 k-means 모델과 인스턴스 집합을 받는다. 코드는 인스턴스 집합을 순회하여 모델을 기반으로 인스턴스가 어느 클러스터에 할당되었는지 출력한다.
public void showInstanceInCluster(SimpleKMeans kMeans, Instances data) { try { for (int i = 0; i < data.numInstances(); i++) { System.out.println(“Instance “ + i + ” is in cluster “ + kMeans.clusterInstance(data.instance(i))); } } catch (Exception e) { e.printStackTrace(); } }