Kernel/VM Advent Calendar2013 1日目

ヽ('ω')ノ三ヽ('ω')ノもうしわけねぇもうしわけねぇ

先日,jubatusが0.5にアップデートがありました.
そこでfluentdのプラグインも0.5に対応中です.

Jubatus 0.5

0.5は?

0.5では新しく,クラスタリングが新しくサポートされてます.

とりあえず動かしてみます

$ jubaclustering -c /path/to/jubatus/example/config/clustering/kmeans.json &

これでkmeansがjubatusで動きま始めました.
Jubatusのプロジェクトで公開されてるデータクラスタリングしてみます.

require 'jubatus/clustering/client'
require 'csv'

def csv2datum(file, keys)
  datum = []
  CSV.open(file).each do |row|
    data = Hash[*(keys.zip(row).flatten)]
    data.each do |key, val|
      if val =~ /^[+-]?[0-9]*[\.]?[0-9]+$/
        data[key.to_s] = val.to_f
      else
        data[key.to_s] = val.to_s
      end
    end
    datum << Jubatus::Common::Datum.new(data)
  end
  datum
end

jubatus = Jubatus::Clustering::Client::Clustering.new('127.0.0.1', 9199, '')
keys = (0...20).map{|x| x.to_s}
csv = csv2datum('baseball.csv', keys)
jubatus.push(csv)

p jubatus.get_nearest_members(csv.first)

うん?このデータがクラスタリングの評価に向いてるかって?
実行してみればいいじゃない

ヽ('ω')ノ三ヽ('ω')ノもうしわけねぇもうしわけねぇ

いろいろとヽ('ω')ノ三ヽ('ω')ノもうしわけねぇもうしわけねぇ.