首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在j48树weka中设置交叉验证的次数

在j48树weka中设置交叉验证的次数
EN

Stack Overflow用户
提问于 2013-11-16 14:50:01
回答 1查看 2.7K关注 0票数 0

我想使用带有5交叉验证的weka j48树。到目前为止,这是我的代码

代码语言:javascript
复制
public class WekaJvMain {
    public static void main(String[] args) {
         try
         {  
             CSV2Arff converter =new CSV2Arff();
             converter.convert();

             DataSource source = new DataSource("data.arff");
             Instances train = source.getDataSet();

             train.setClassIndex(train.numAttributes() - 1);  // setting class attribute

             // classifier
             J48 j48 = new J48();
             j48.setUnpruned(true);        // using an unpruned J48

             j48.buildClassifier(train);
             System.out.print(j48.graph());

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

这段代码训练数据并打印出j48树。但是,我无法找到如何设置交叉验证的折叠数?请详细解释,我不擅长Java。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-16 15:12:19

下面是您的代码,并对j48分类器进行了5倍的交叉验证评估。在训练最终分类器之前进行评估是很重要的。更多信息可以找到这里

代码语言:javascript
复制
public class WekaJvMain {
    public static void main(String[] args) {
         try
         {  
             CSV2Arff converter =new CSV2Arff();
             converter.convert();

             DataSource source = new DataSource("data.arff");
             Instances train = source.getDataSet();

             train.setClassIndex(train.numAttributes() - 1);  // setting class attribute

             // classifier
             J48 j48 = new J48();
             j48.setUnpruned(true);        // using an unpruned J48

             //evaluate j48 with cross validation
             Evaluation eval=new Evaluation(train);

             //first supply the classifier
             //then the training data
             //number of folds
             //random seed
             eval.crossValidateModel(j48, train, 5, new Random(1));
             System.out.println("Percent correct: "+
                                Double.toString(eval.pctCorrect()));


             j48.buildClassifier(train);
             System.out.print(j48.graph());

         }
         catch(Exception e)
         {
             e.printStackTrace();
         }      
    }
} 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20019765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档