2012年10月19日金曜日

groovyでk-means++法を使用してクラスタリングする

groovyでk-means++法を使用してクラスタリングするには、以下のコードを実行します。
@Grab(group='org.apache.commons', module='commons-math3', version='3.0')
import org.apache.commons.math3.stat.clustering.*
import java.util.*

def points = [
new EuclideanIntegerPoint([10,10] as int[]),
new EuclideanIntegerPoint([12,11] as int[]),
new EuclideanIntegerPoint([30,23] as int[]),
new EuclideanIntegerPoint([91,20] as int[]),
new EuclideanIntegerPoint([95,17] as int[]),
new EuclideanIntegerPoint([11,89] as int[]),
new EuclideanIntegerPoint([12,85] as int[]),
new EuclideanIntegerPoint([7,88] as int[])
]

def kmpp = new KMeansPlusPlusClusterer(new Random())
def clusters = kmpp.cluster(points, 4, 10)
def cn = 0
for(cluster in clusters){
  println "cluster : ${cn}"
  for(point in cluster.getPoints()){
    println point.getPoint()
  }
  cn++
}

0 件のコメント:

コメントを投稿