ラベル mahout の投稿を表示しています。 すべての投稿を表示
ラベル mahout の投稿を表示しています。 すべての投稿を表示

火曜日, 12月 21, 2010

mahoutでkmeans!

以下HADOOP_CLASSPATHを設定して、

$ export HADOOP_CLASSPATH=dependency/mahout-math-0.4.jar:dependency/mahout-core-0.4.jar:dependency/mahout-utils-0.4.jar:dependency/google-collections-1.0-rc2.jar:dependency/gson-1.3.jar:dependency/mahout-collections-1.0.jar:dependency/commons-cli-2.0-mahout.jar

以下を実行。なぜかKMeansはhadoopがローカルで待ち受けていないと動かない様子。

$ ~/hadoop-0.20.2/bin/hadoop jar mahout-examples-0.4.jar org.apache.mahout.clustering.display.DisplayKMeans

以下は、Hadoopが待ち受けていなくても動きますが、クラスがpublic宣言されていないのでソースを書きかえる必要がありました。

$ ~/hadoop-0.20.2/bin/hadoop jar mahout-examples-0.4.jar org.apache.mahout.clustering.display.DisplayCanopy

mahoutにGUIが付いていることは、意外にしられていないのでは、と思います。

火曜日, 12月 07, 2010

mahoutでTSP!

mahoutの中には、TSP(Travelling Salesman Problem / 巡回セールスマン問題)のが入っています。一応GUIも付いてます。でも、なぜかsrc版からコンパイルしないと動きません。


うーん。。地味。もっと派手なのかと思ったのですが(AWT入ってるからバイナリのやつだと動かないのかな)。ちなみにmahoutはTESTを回すと準備にかなり時間がかかるので、
$ mvn install -Dmaven.test.skip=true

とやるのが良いようです。そして以下で起動。
$ ~/hadoop-0.20.2/bin/hadoop jar examples/target/mahout-examples-0.4-job.jar org.apache.mahout.ga.watchmaker.travellingsalesman.TravellingSalesman

しかし、Hadoopでやらせる(チェックをつける)と、outputパスがもうあるから書けないよ!と文句を言われるのだけど、これはどうすればよいのだろう。
MahoutEvaluator.javaの中でoutputって定義してあるから、複数回(Generationの分だけ)この評価を回したら、そらバッティングすると思うんだけど。。?(これはHDFS上のホームディレクトリというか、/user/~/outputとかのようにできる)
このディレクトリを、ランダム文字列付きとして実行したら最後まで動くことは動いた。

なお、cygwinなどでローカル実行するときは、Generationを(デフォルトの100から)低い数字にしておかないと大変な時間がかかるので注意。

火曜日, 5月 18, 2010

Mahotをウェブアプリで使う

Jteamというサイトに、サンプルアプリが公開されていたのでメモ。
  1. sampleのzipファイル(taste-getting-started.zip)をダウンロードして展開
  2. Mavenを使って"mvn install"
  3. ミネソタ大学のgrouplensというラボから評価用データセット(ml-data_0.zip)を入手
  4. どこかに立てたMySQLにテーブルを作る(taste-getting-started\src\main\resources\sql\initialize_movielens_db.sqlにて)
     ・この中でmovielensという名前でデータベースやユーザが作られる
     ・しかしこのとき作られるユーザはlocalhost縛りになるので注意('@%'に要変更)
     ・ロードするu.itemは変なディレクトリにあることになっているので要変更
  5. taste-getting-started\src\main\webapp\WEB-INF\persistence-context.xmlの接続情報を変更
  6. Mavenを使って"mvn jetty:run"
意外に簡単なのですが、あるべきMoviePage.htmlが入ってなく、、、かつ映画名が良く分からないので、それがレコメンドとして正しいのかの判断が不明です。