我正在尝试使用 [python-weka-wrapper-3][1] 在我的 Python 程序中使用多个分类器。这是我的代码:
def main():
classifierNB = Classifier(classname="weka.classifiers.bayes.NaiveBayes") #works
classifierNBMult = Classifier(classname="weka.classifiers.bayes.NaiveBayesMultinomial") #works
classifierLibSVM = Classifier(classname="weka.classifiers.functions.LibSVM") #won't work
try:
jvm.start()
main()
except Exception as e:
print("Error:", e)
finally:
jvm.stop()
但是,当我运行它(在 Windows 上)时,出现以下错误:
java.lang.NoClassDefFoundError: weka/classifiers/functions/LibSVM
Caused by: java.lang.ClassNotFoundException:
weka.classifiers.functions.LibSVM
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
Exception in thread "Thread-0"
Failed to get class weka/classifiers/functions/LibSVM
Failed to instantiate
weka.classifiers.functions.LibSVM/weka/classifiers/functions/LibSVM:
weka/classifiers/functions/LibSVM
Error: Object does not implement or subclass weka.classifiers.Classifier:
builtins.NoneType
我已经使用 Weka Package Manager GUI 安装了 LibSVM。它在 Weka GUI 中运行良好。我还包含了以下类路径,但这似乎也不起作用:
C:\Path\To\wekafiles\packages\LibSVM\lib\libsvm.jar
C:\Path\To\wekafiles\packages\LibSVM\LibSVM.jar
C:\Path\To\wekafiles\packages\LibSVM\lib\*
C:\Path\To\wekafiles\packages\LibSVM\*
我做错了什么?提前致谢!
最佳答案
我能够用 jvm.start(packages=True) 修复它,哎呀! :)
关于python - Weka:LibSVM 在 GUI 中工作,但不能在带有 WEKA Wrapper 的 Python 代码中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43543294/