gpt4 book ai didi

java - 使用Weka API时如何在堆叠方法中指定基分类器?

转载 作者:搜寻专家 更新时间:2023-10-31 19:55:22 24 4
gpt4 key购买 nike

我试图在 java 中使用堆叠方法 weka api,并找到了单个分类器的教程。我尝试使用教程方法中描述的方法实现堆叠,但分类是使用 Weka 中的默认零分类器完成的。我能够使用“setMetaClassifier”设置元分类器,但无法更改基分类器。正确的方法是什么在堆叠中设置基本分类器?

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.Random;
import weka.classifiers.Evaluation;
import weka.classifiers.meta.Stacking;
import weka.core.Instances;
public class startweka {
public static void main(String[] args) throws Exception{
BufferedReader breader=new BufferedReader(new FileReader("C:/newtrain.arff"));
Instances train=new Instances(breader);
train.setClassIndex(train.numAttributes()-1);
breader.close();
String[] stackoptions = new String[1];
{
stackoptions[0] = "-w weka.classifiers.functions.SMO";
}
Stacking nb=new Stacking();
J48 j48=new J48();
SMO jj=new SMO();
nb.setMetaClassifier(j48);
nb.buildClassifier(train);
Evaluation eval=new Evaluation(train);
eval.crossValidateModel(nb, train, 10, new Random(1));
System.out.println(eval.toSummaryString("results",true));
}}

最佳答案

好的,我在其他论坛weka nabble中找到了答案。设置基分类器的代码是

Stacking nb=new Stacking();
SMO smo=new SMO();
Classifier[] stackoptions = new Classifier[1];
stackoptions[0] = smo;
nb.setClassifiers(stackoptions);

Stacking nb=new Stacking();
SMO smo=new SMO();
Classifier[] stackoptions = new Classifier[] {smo};
nb.setClassifiers(stackoptions);

关于java - 使用Weka API时如何在堆叠方法中指定基分类器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22041223/

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