2012年8月27日月曜日

機械学習の特集



どうしてもレコマンドしてみたくて…
という人は読んでみるとよいかと思います。

-機械学習とは
-Mahoutの歴史

このあたりは興味を持った。
実はこのあたり、もっと学生時代に深めたかった気はする。

書いてある通りに手を動かしました。

・Eclipseのインストール…もともとしてあった

・Mavenのインストール(3.0.4)…とりあえず書いてある通りに。

・Mahoutのインストール←☆つまづきました。


mahout-distribution-0.7 kitsu$ mvn eclipse:eclipse
[INFO] Scanning for projects...
[INFO]                                                                        
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.124s
[INFO] Finished at: Sun Aug 05 13:01:18 JST 2012
[INFO] Final Memory: 4M/81M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-eclipse-plugin:2.9:eclipse (default-cli): Goal requires a project to execute but there is no POM in this directory (/usr/local/bin/mahout-distribution-0.7). Please verify you invoked Maven from the correct directory. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MissingProjectException


pomファイルというのが変?
と思い、mahout-distribution-0.7.pomというのもダウンロードして入れてみたりするんだけど、
最後までいかない。

結局、ダウンロードしなおしたのか、
しばらくして例のとおりのダウンロードログが出るように。
実際はすごく長かった。

・MahoutのソースコードをEclipseへインポート…これもEclipse使い慣れている人なら大丈夫な感だった。

・テストプログラム…その通りにやったら相関が出た。

・Hadoopで動かす←☆ちょっと面倒でした。

./bin/hadoop fs -put $testdir/inputdata.csv input/samples.txt

とやったら、

Error: JAVA_HOME is not set.

Mac OSXのJAVA_HOMEを探すのに一苦労。
いいのかわからないけど10.6あたりだと/Library/Java/homeということで、

export JAVA_HOME=/Library/Java/home

として再度 fs -put... のくだりを実行。

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

が出たが気にしなかった。

最後のコマンド

./bin/hadoop jar /usr/local/bin/mahout-distribution-0.7/core/target/mahout-core-0.7-job.jar org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -Dmapred.output.dir=output -Dmapred.input.dir=input/samples.txt --similarityClassname SIMILARITY_PEARSON_CORRELATION

打ったら、
わんさか途中経過が出てきてしかもなかなか終わらないと思ったが、
最後にはコンソールに制御が戻った。

参考文献:
機械学習ライブラリ『Mahout』入門(前編) - Software Design 2012年8月 技術評論社
機械学習ライブラリ『Mahout』入門(後編) - Software Design 2012年9月 技術評論社

- by Mizuk

0 コメント:

コメントを投稿