2011年6月28日火曜日

wekaを使ってみる(メモリー不足)

決定木を使ってみたくて Weka3.6.4 を起動してみた。GUI を選択するダイアログボックスが現れる。












とっつきやすいと思われる KnowlageFlow を選択。
まずは、データを直接 Classifier - trees の J48 に流しこみ、Visualizer の Text viewer と Graph viewer で決定木を表示できるようにするという、とっても単純なフローを作成して実行。
おやおや、早速のエラーです。 














Not enough memory.Please load a smaller dataset or use larger heap size.


使ったデータセットはそんなに大きくもないのに、データセットを小さくするなんていう選択肢はないでしょう。でも、heap なんていうメモリはプログラ魔でもないおじさんにはなんのことだか。でも、起動オプションを使えば大きなメモリを確保して、問題が回避できそうだということはわかった。

しかし、毎回オプションをつけて起動するのは億劫だなあ。最近は、コマンドをしょっちゅう忘れるし(-_-)。 というわけで、楽ちんな方法を探すためにウェブを検索したが、見つけることができない。

そこで、Weka のプログラムがインストールされている"C:\Program Files\Weka-3-6\"の RunWeka.bat という起動用のファイルをテキストエディタで開けてみると、RunWeka.ini なるファイルを読み込んでいる。さらに、RunWeka.ini をテキストエディタでひらいてみると、24行目に"maxheap=256m"という箇所を見つけた。よくわからないまま、いきなりこれを"maxheap=2048m"に書き換えてKnowlageFlowを起動すると、今度はちゃんと動いた。ただ、このサイズが適切なのかどうかは全然わからない。

やった、動いた。ラッキー \(^o^)/ と思ったのも束の間、Text viewer で結果を表示すると、なんじゃこりゃというか、やっぱりそうかという文字化けに遭遇いたしました。チャンチャン。

--------------------------------------------------------

(追記) あるブログによると32bit機や64bitでも大きなRAMメモリを積んでいないPCでは、いきなりmaxheap=2048mなんてことをしては絶対にいけないけないそうです。ごめんなさい。そんなに奢った仕様のものではありませんが、私のPCは確かに64bitです