0

我在 Jython 中使用 Weka 类,问题是如何定义 Adaboost 的分类器。

我用:

导入 weka.classifiers.meta.AdaBoostM1 作为 AdaBoost

但我不知道如何调整其分类器,例如设置 J48。

4

2 回答 2

1

这个 jython 代码在 3.7.10 中为我工作

algo = AdaBoostM1()
option_string = " -P 100 -S 1 -I " + str(num) + " -W weka.classifiers.trees.J48"
options = splitOptions(option_string)
algo.setOptions(options)
algo.buildClassifier(data)

你也可以这样做:

algo = AdaBoostM1()
options = [];
options.append("-P");
options.append("100");
options.append("-S");
options.append("1");
options.append("-I");
options.append(str(num));
options.append("-W");
options.append("weka.classifiers.trees.J48");
algo.buildClassifier(data)
于 2014-05-28T18:03:47.127 回答
0

weka 中的几乎每个分类器都可以从命令行使用。此命令行用法通过选项处理程序接口提供给 java 用户。请参阅在您的 Java 代码中使用 WEKA

Option handling
Weka schemes that implement the weka.core.OptionHandler interface, 
such as classifiers, clusterers, and filters, offer the following methods 
for setting and retrieving options:

据此,您将使用以下 java 代码:

import weka.classifiers.meta.AdaBoostM1;

AdaBoostM1 classifier = new AdaBoostM1();
Instances data = readArffFile();
String optionString = " -P 100 -S 1 -I 10 -W weka.classifiers.trees.DecisionStump";
classifier.setOptions(weka.core.Utils.splitOptions(optionString);
classifier.buildClassifier(data); 

恐怕您需要将此 java 代码更改为 jython。我不认为,这会很难。

于 2013-03-31T19:38:49.787 回答