如何在Jython中使用Weka库中的Adaboost算法

时间:2013-03-31 04:34:49

标签: python jython weka

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

我用:

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

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

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

几乎weka中的每个分类器都可以在命令行中使用。此命令行用法通过选项处理程序接口提供给Java用户。见Use WEKA in your Java code

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。我不认为,这会很难。