如何在Mac上将LibSVM类添加到WEKA类路径

Dan*_*Dan 10 java macos weka

我正在运行Max OS X 10.7 Lion,我想从命令行使用WEKA和LibSVM.我收到此错误:

Problem evaluating classifier: libsvm classes not in CLASSPATH!
Run Code Online (Sandbox Code Playgroud)

我在WEKA收到的错误

我在这里找到了LibSVM库.我需要将它添加到我的Java类路径中,以便WEKA可以找到它.下载包含几个文件,如下所示.我不知道如何将它们添加到我的Java类路径中.

LibSVM下载中的文件需要添加到类路径中

我试图在WEKA中使用LibSVM分类器,因为它比SMO更适合我.我也不确定这是否意味着Java类路径,或者它是否特定于WEKA.我也不知道从哪里获取这些课程.任何帮助表示赞赏.

Dan*_*ber 15

这是在OS X上向WEKA添加LibSVM支持的另一种非常简单的方法(无需命令行):

  1. 这里下载LibSVM
  2. 转到Mac上的/ Applications文件夹(安装Weka应用程序的文件夹)
  3. 右键单击Weka>选择"显示包内容"
  4. 将libsvm.jar复制到/Applications/Weka.app/Contents/Resources/Java
  5. 在您喜欢的文本编辑器中打开/Applications/Weka.app/Contents/Info.plist
  6. 更改<string>$JAVAROOT/weka.jar</string><string>$JAVAROOT/weka.jar:$JAVAROOT/libsvm.jar</string>(您还可以在此处调整堆大小)
  7. 保存并启动weka


chl*_*chl 11

您可以输入libsvm.jar您选择的文件夹,例如~/Library/Java,然后从命令行运行weka,如下所示:

$ java -Xmx512m -classpath /Users/chl/weka/weka.jar:/Library/Java/libsvm.jar weka.gui.GUIChooser
Run Code Online (Sandbox Code Playgroud)

您还可以更新您的CLASSPATH位置以反映*.jar可以找到文件的位置.我有以下内容.profile:

export CLASSPATH="/Users/chl/weka/weka.jar:~/Library/Java/*"
Run Code Online (Sandbox Code Playgroud)

(您需要更换/Users/chl/weka以反映您的正确位置weka.jar;通常,如果您下载了源文件,则它位于目录的顶部; weka-3-7-3.app/Contents/Resources/Java/如果您使用捆绑的应用程序,则位于目录的顶部.)

这样,启动weka GUI的第一个命令简化为

$ java -classpath $CLASSPATH:weka.jar:libsvm.jar weka.gui.GUIChooser
Run Code Online (Sandbox Code Playgroud)

不要使用,java -jar因为它会覆盖CLASSPATH,如这里所讨论的.

我也有一个别名.bash_aliases来包装所有东西:

alias weka='java -Xmx512m -classpath $CLASSPATH:weka.jar'
Run Code Online (Sandbox Code Playgroud)

为了从命令行使用weka,例如

$ weka weka.classifiers.trees.RandomTree -t iris.arff -i
Run Code Online (Sandbox Code Playgroud)