How to add LibSVM class to WEKA classpath on a Mac

北城余情 提交于 2019-12-20 09:47:15

问题


I am running Max OS X 10.7 Lion and I want to use WEKA with LibSVM from command line. I get this error:

Problem evaluating classifier: libsvm classes not in CLASSPATH!

I found the LibSVM library here. I need to add it to my Java classpath so that WEKA can find it. The download contains several files, shown below. I don't know how to add them to my classpath for Java.

I am attempting to use the LibSVM classifier in WEKA because it is preferable for me over SMO. I am also unsure if this means the Java classpath or if it is specific to WEKA. I also don't know where to get these classes from. Any help is appreciated.


回答1:


Here is another extremely easy way to add LibSVM support to WEKA on OS X (no command line needed):

  1. Download LibSVM from here
  2. Go to /Applications folder on your Mac (the folder where the Weka app is installed)
  3. Right click on Weka > Chose "Show Package Contents"
  4. Copy libsvm.jar to /Applications/Weka.app/Contents/Resources/Java
  5. open /Applications/Weka.app/Contents/Info.plist in your favorite text editor
  6. change <string>$JAVAROOT/weka.jar</string> to <string>$JAVAROOT/weka.jar:$JAVAROOT/libsvm.jar</string> (you can also adjust the heap size here)
  7. Save and start weka



回答2:


You can put libsvm.jar in a folder of your choice, e.g. ~/Library/Java, and then run weka from the command-line as follows:

$ java -Xmx512m -classpath /Users/chl/weka/weka.jar:/Library/Java/libsvm.jar weka.gui.GUIChooser

You can also update your CLASSPATH to reflect locations where *.jar files can be found. I have the following in my .profile:

export CLASSPATH="/Users/chl/weka/weka.jar:~/Library/Java/*"

(You will need to replace /Users/chl/weka to reflect the correct location of your weka.jar; usually, it is located at the top of the directory if you downloaded the source files, or under weka-3-7-3.app/Contents/Resources/Java/ if you use the bundled app.)

This way, the first command to start weka GUI simplifies to

$ java -classpath $CLASSPATH:weka.jar:libsvm.jar weka.gui.GUIChooser

Don't use java -jar since it will override the CLASSPATH, as discussed here.

I also have an alias in my .bash_aliases for wrapping all that stuff:

alias weka='java -Xmx512m -classpath $CLASSPATH:weka.jar'

in order to use weka from the command-line as, e.g.

$ weka weka.classifiers.trees.RandomTree -t iris.arff -i



回答3:


1) Copy libsvm.jar found here into the Java folder in the package content of the Weka.app:

<path-to-Weka.app>/Weka.app/Contents/Java/

2) Add this line to your .bash_profile or similar configuration file:

export CLASSPATH="<path-to-Weka.app>/Weka.app/Contents/Java/weka.jar:<path-to-Weka.app>/Weka.app/Contents/Java/libsvm.jar"

Note: you should replace <path-to-Weka.app> by your own path. It could look like /Applications/JavaApp/weka-3-6-11-oracle-jvm.app.




回答4:


Download the libsvm files and past them in the working directory of weka. Now goes to Control Panel->System->Advance System Setting-> and Edit the Environment Variable, Select the Class_Path variable and copy all that path along with the file name. i.e. C:\Program Files\Weka\Libsvm.jar; and click ok-ok-ok and Restart the weka



来源:https://stackoverflow.com/questions/9248090/how-to-add-libsvm-class-to-weka-classpath-on-a-mac

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!