TL上にものすごーく刺激的な情報が飛び込んできたので、思わずご紹介。
一部の方にはお伝えしておりますが、hive/hadoop上でスケーラブルに機械学習(今のとこクラス分類、回帰分析)を行うライブラリをオープンソース(LGPL)でリリースしました。mahout等より扱いやすい&スケーラブルなはず。
https://t.co/eBGmoW66V0
— myui (@myui) 2013, 9月 30
ということで、ご本人のツイートにもあるようにGitHubに一式全て上がっています。ライセンスもLPGLなので自由に使えるという素晴らしさ。これ職場の分析マシンにもcloneしようかな(笑)。
Wikiページを見ると、このライブラリの使い方が書いてあるんですが。。。何が凄いって、何とHiveクエリを書く要領で機械学習まわりの演算を全て実行できてしまう!というところ。ちょっと失礼して、引用しながら見てみましょう。
実際の機械学習の実行コード
そしてもっと凄いのが、個々の実行コード。要はHiveに機械学習の演算をしてくれるUDFをぶち込んで回すだけなので*1、見た目には完全にただHiveクエリ書いているようにしか見えません。
ロジスティック回帰:学習
create table a9a_model1 as select cast(feature as int) as feature, cast(avg(weight) as float) as weight from (select logress(addBias(features),label,"-total_steps ${total_steps}") as (feature,weight) from a9atrain ) t group by feature;
ロジスティック回帰:予測
create or replace view a9a_predict1 as select t.rowid, sigmoid(sum(m.weight)) as prob, sum(m.weight) as total_weight, CAST((case when sum(m.weight) > 0.0 then 1.0 else 0.0 end) as FLOAT) as label from a9atest_exploded t LEFT OUTER JOIN a9a_model1 m ON (t.feature = m.feature) group by t.rowid;
本当にたったのこれだけ。これはAmazon Elastic MapReduceでも使えるはずなので、AWSアカウントを持っている人でHiveならサクサク書けるという人なら、今すぐにでもHDFS上で分散処理による機械学習をお手軽に体験できるんじゃないでしょーか。