gpt4 book ai didi

java - 使用 LibSVM 的 Java 代码中的 Weka 错误 "cannot handle numeric class"

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:13:51 26 4
gpt4 key购买 nike

我正在尝试通过 Weka 使用基于 LibSVM 的分类器,但出现此错误:

Exception in thread "main" weka.core.UnsupportedAttributeTypeException:weka.classifiers.functions.LibSVM: Cannot handle numeric class!
at weka.core.Capabilities.test(Unknown Source)
at weka.core.Capabilities.test(Unknown Source)
at weka.core.Capabilities.test(Unknown Source)
at weka.core.Capabilities.testWithFail(Unknown Source)
at weka.classifiers.functions.LibSVM.buildClassifier(Unknown Source)
at imgclassifier.ImgClassifier.main(ImgClassifier.java:45)
Java Result: 1

这是我的代码:

try {

File f = new File("australian.txt");
LibSVMLoader loader = new LibSVMLoader();
loader.setSource(f);
Instances i = loader.getDataSet();

LibSVM svm = new LibSVM();
svm.buildClassifier(i);

}catch (IIOException e) {
e.printStackTrace();
}

australian.txt 是此处的示例:LibSVM DataSets谁能解释我错误在哪里?提前致谢

最佳答案

我无法批评您的整个方法,但您缺少的一项重要内容是告诉 SVM 您想要进行回归。 (与许多人的印象相反,LibSVM 可以 进行回归;参见 http://www.csie.ntu.edu.tw/~cjlin/libsvm/ - “LIBSVM 是……用于……回归(epsilon-SVR,nu-SVR)……”)

你需要这样做来告诉它做回归:

svm.setSVMType(new SelectedTag(LibSVM.SVMTYPE_EPSILON_SVR, LibSVM.TAGS_SVMTYPE)); // -S 3=epsilon-SVR

/抢劫

PS - 在我使用 Java 面向对象的方法(使用 LibSVM 对象上的方法,而不是使用基于字符串的“选项”方法)对所有参数进行编码之前,我仍然遇到“无法处理数字类”错误。我不知道这是为什么,可能是误会,但确实如此。

关于java - 使用 LibSVM 的 Java 代码中的 Weka 错误 "cannot handle numeric class",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17720677/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com