我正在运行Max OS X 10.7 Lion,我想从命令行使用WEKA和LibSVM。我收到这个错误:
Problem evaluating classifier: libsvm classes not in CLASSPATH!
我找到了LibSVM库here。我需要将它添加到我的Java类路径中,以便WEKA可以找到它。下载包含几个文件,如下所示。我不知道如何将它们添加到我的Java类路径中。
我正在尝试在WEKA中使用LibSVM分类器,因为它优于SMO。我也不确定这是否意味着Java类路径,或者它是否特定于WEKA。我也不知道从哪里获取这些课程。任何帮助表示赞赏。
答案 0 :(得分:15)
这是在OS X上向WEKA添加LibSVM支持的另一种非常简单的方法(无需命令行):
<string>$JAVAROOT/weka.jar</string>
更改为<string>$JAVAROOT/weka.jar:$JAVAROOT/libsvm.jar</string>
(您还可以在此处调整堆大小)答案 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