2009-09-03

Getting LibSVM to work with Weka on Mac

Somehow, the only way to use LibSVM with Weka is by using the bash command-line.

Step 1: Get Weka.
Assume the bleeding edge version 3.7.0. Unzip and put in /Applications folder.

Step 2: Get LibSVM.
a. Iowa State site (http://www.cs.iastate.edu/~yasser/wlsvm/wlsvm.zip):
If you use Safari to download, it will be unzipped in the Downloads directory. The files you need are ~/Downloads/WLSVM/lib/wlsvm.jar and /Downloads/WLSVM/lib/libsvm.jar
b. Taiwan site(http://www.csie.ntu.edu.tw/~cjlin/libsvm/libsvm-2.89.zip):
Using Safari to download, the file you need is ~/Downloads/libsvm-2.89/java/libsvm.jar

Step 3: Open Terminal and copy to Weka.app. Assume you have privileges to write into Weka.app.
a. Iowa State version:
$ cp ~/Downloads/WLSVM/lib/*.jar /Applications/Weka/weka-3-7-0.app/Contents/Resources/Java
b. Taiwan version:
$ cp ~/Downloads/libsvm-2.89/java/libsvm.jar /Applications/Weka/weka-3-7-0.app/Contents/Resources/Java

Step 4: Set CLASSPATH
$ export CLASSPATH=$CLASSPATH:/Applications/Weka/weka-3-7-0.app/Contents/Resources/Java/

Step 5:Run Weka from Terminal!
$ java -classpath $CLASSPATH:weka.jar:libsvm.jar weka.gui.GUIChooser &

Conclusion: Bash sucks less!

5 comments:

SoNIC said...

OR
1.copy the libsvm.jar and wvsvm.jar into the app folder like told in the blog

2.edit weka.app\info.plist file in textedit

After ClassPath
and the array start tag you'll see
$JAVAROOT/weka.jar within string tags
copy that whole line and make two copies directly below it
edit the new copies to say
$JAVAROOT/libsvm.jar in one
and
$JAVAROOT/wlsvm.jar in the other


3.(Optional)you can change the VMOptions also if you want to increase the heap Mem size

After VMOptions key
edit string tag to -Xmx512M

that's all
just run the app as usual without command line :)

Bash sucks more :P

funny to see you can't type tags in comments .. so the above steps may be a little hard to understand for novice users [:)]

panpa said...

Thanks a lot for the tips!
It worked, :)

panpa said...
This comment has been removed by the author.
Alexandre said...

The best way is, when starting Weka, to go to Tools menu and install packages (libSvm is there).

Personnally, I was not able to make weka+libsvm work as it was explained here (Snowleaopad, 10.6.6).

Regards

AS

VT said...

Great tip, it worked!