Mahout開発環境の作成
Mahout In Actionのコードを実行するために、EclipseでMahoutの開発をする環境を作成してみました。
下記サイトを参考にさせていただきました。
mahout/レコメンドシステムの作り方
前提
- Java, Maven, Eclipseがインストール済みであること
手順
- m2eclipseプラグインのインストール
- Maven Projectの作成
- M2_REPOの設定
- mahout-cor
eのdependency 設定 - Javaクラスの作成
それぞれの手順の内容は下記のとおりです。
・m2eclipseプラグインのインストール
Eclipse上からMavenの操作ができるようにするために、m2eclipseというプラグインをインストールします。
Eclipse の Helpメニュー > Install New Software..
http://m2e
インストール後にはEclipseの再起動が必要です。
・Maven Projectの作成
Eclipse の Fileメニュー > New > Other...
Maven > Maven Project を選択して Maven Project を作成します。
・M2_REPOの設定
MavenのローカルリポジトリのパスをM2_REPOという変数名で設定します。
Eclipse の Windowメニュー > Preference
Java > Build Path > Classpath Variables
Newボタンをクリックして Name と Value を設定します。私の場合は下記の用に設定しました。
- Name: M2_REPO
- Value: /home/h-ak
anuma/.m2/ repository
・mahout-cor eのdependency 設定
Mahout のライブラリを使用できるようにするために、mahout-cor
1 <dependency> 2 <groupId>org.apache .mahout</groupId> 3 <artifactId >mahout-cor e</artifactId > 4 <version>0.5</version> 5 </dependency > 6 <dependency > 7 <groupId>org.slf4j</groupId> 8 <artifactId >slf4j-jcl</artifactId > 9 <version>1.6.0</version> 10 <scope>test</scope> 11 </dependency >
追加後にworkspace内のプロジェクトのディレクトリで下記mvnコマンドを実行して、依存性の解決とソースコードをダウンロードしてEclipseから参照できるようにします。
1 ~/workspace/ml$ mvn eclipse:ec lipse -Ddownload Sources=tr ue
・Javaクラスの作成
Mahout In Action のサンプルクラスを作成してみます。
1 public class RecommenderIntro { 2 public static void main(String[] args) throws Exception { 3 DataModel model = new FileDataMo del (new File("/tmp/intro .csv")); 4 UserSimila rity similarity = new PearsonCor relationSi milarity (model); 5 UserNeighb orhood neighborho od = new NearestNUs erNeighbor hood (2, similarity , model); 6 Recommende r recommende r = new GenericUse rBasedReco mmender (model, neighborho od, similarity ); 7 List<Recommende dItem> recommenda tions = recommende r.recommen d(1, 1); 8 for (Recommende dItem recommenda tion : recommenda tions) { 9 System.out.print ln(recommenda tion); 10 } 11 } 12 }
Ctrl+Shift
上記Javaクラス内で使用している intro.csv の内容は下記のとおりです。
1 1,101,5.0 2 1,102,3.0 3 1,103,2.5 4 5 2,101,2.0 6 2,102,2.5 7 2,103,5.0 8 2,104,2.0 9 10 3,101,2.5 11 3,104,4.0 12 3,105,4.5 13 3,107,5.0 14 15 4,101,5.0 16 4,103,3.0 17 4,104,4.5 18 4,106,4.0 19 20 5,101,4.0 21 5,102,3.0 22 5,103,2.0 23 5,104,4.0 24 5,105,3.5 25 5,106,4.0
Javaクラスと同じパスに保存してEclipse上から実行すると下記のような結果が得られます。
1 RecommendedItem[item:104, value:4.25 7081]
※初稿掲載時は実行時に「intro.csvが見つからないと言われてしまう」と書いていましたが、intro.csvをフルパスで /tmp/intro