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

时间:2012-02-12 10:29:04

标签: java macos weka

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

Problem evaluating classifier: libsvm classes not in CLASSPATH!

Error I am receiving in WEKA

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

Files in LibSVM download that need to be added to classpath

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

4 个答案:

答案 0 :(得分:15)

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

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

答案 1 :(得分:11)

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

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

您还可以更新CLASSPATH以反映可以找到*.jar个文件的位置。我的.profile

中有以下内容
export CLASSPATH="/Users/chl/weka/weka.jar:~/Library/Java/*"

(您需要替换/Users/chl/weka以反映weka.jar的正确位置;通常,如果您下载源文件,则位于目录顶部,或{{1}如果您使用捆绑的应用程序。)

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

weka-3-7-3.app/Contents/Resources/Java/

请勿使用$ java -classpath $CLASSPATH:weka.jar:libsvm.jar weka.gui.GUIChooser ,因为它会覆盖java -jar,正如所讨论的here

我的CLASSPATH中也有一个别名用于包装所有内容:

.bash_aliases

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

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

答案 2 :(得分:2)

1)将libsvm.jar找到here复制到Weka.app的包内容中的Java文件夹中:

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

2)将此行添加到.bash_profile或类似的配置文件中:

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

注意:您应该用自己的路径替换<path-to-Weka.app>。它可能看起来像/Applications/JavaApp/weka-3-6-11-oracle-jvm.app

答案 3 :(得分:1)

下载libsvm文件并将它们放在weka的工作目录中。 现在转到控制面板 - &gt;系统 - &gt;高级系统设置 - &gt;和编辑环境变量,选择Class_Path变量并将所有路径与文件名一起复制。 即C:\ Program Files \ Weka \ Libsvm.jar; 然后单击ok-ok-ok 并重新启动weka