weka

wekaに実装されているいくつかの判別器を実行すると、メモリー不足から実行が停止してしまうことがしばしば。

そこでJVMのメモリー使用可能域を増やそうと思い、色々調べましたが、日本語ではなかなか見つかりません。

RunWeka.iniの35行目付近、maxheapを指定すれば基本的には解決するはずだったのですが、どうもうまくいかない。helpからsysteminfoを見ても、変わりません。

観念して英語でwekaのメーリスをあさっていると、同様の問題を抱えた人発見。

どうもRunWeka.batとを多少書き換えないとだめみたいです。

以下、その方の修正版のほぼコピペです。日本語で書かれたものがなかなかなかったので、参考になれば。

//以下RunWeka.bat

@echo off

REM Batch file for executing the RunWeka launcher class.
REM RunWeka.bat
REM Run with option "-h" to see available commands
REM
REM Notes:
REM - If you're getting an OutOfMemory Exception, increase the value of
REM "maxheap" in the RunWeka.ini file.
REM - If you need more jars available in Weka, either include them in your
REM %CLASSPATH% environment variable or add them to the "cp" placeholder
REM in the RunWeka.ini file.
REM
REM Author: FracPete (fracpete at waikato dot ac dot nz)
REM Version: $Revision: 1.6 $

set _cmd=%1
set _java=C:\\Program Files (x86)\\Java\\jre1.5.0_22\\bin\\javaw
if "%_cmd%"=="" set _cmd=default
if "%_cmd%"=="-h" set _java=C:\\Program Files (x86)\\Java\\jre1.5.0_22\\bin\\java
"%_java%" -classpath . RunWeka -i .\RunWeka.ini -w .\weka.jar -c %_cmd% "%2"

//

//以下RunWeka.iniの一部

cmd_default="C:\\Program Files (x86)\\Java\\jre1.5.0_22\\bin\\javaw" -Dfile.encoding=#fileEncoding# -Xmx#maxheap# -classpath "#wekajar#;#cp#" #mainclass#
cmd_console=cmd.exe /K start cmd.exe /K "\"C:\Program Files (x86)\\Java\\jre1.5.0_22\\bin\\java\" -Dfile.encoding=#fileEncoding# -Xmx#maxheap# -classpath \"#wekajar#;#cp#\" #mainclass#"
cmd_explorer="C:\\Program Files (x86)\\Java\\jre1.5.0_22\\bin\\javaw" -Dfile.encoding=#fileEncoding# -Xmx#maxheap# -classpath "#wekajar#;#cp#" weka.gui.explorer.Explorer

//

ただしこれも完全な解決策でなく、ファイルを開く際に正常な表示でなくなってしまうのが気になります。

なにかこれについて解決策あればご教授くださいますよう、よろしくお願い致します。

さらに、attributeが1300個くらいあるデータに対して、naivebayesが実行できないのもなぞです・・・。

よくみたらarffファイルのattributeの最後の要素として、分類クラスを書いてませんでした。そりゃだめだわ。


あぁ・・・