【问题标题】:weka wrapper attribute selection random forest javaweka包装器属性选择随机森林java
【发布时间】:2017-06-07 00:12:59
【问题描述】:
protected static void attSelection_w(Instances data) throws Exception { 
    AttributeSelection fs = new AttributeSelection();
    WrapperSubsetEval wrapper = new WrapperSubsetEval();

    wrapper.buildEvaluator(data);
    wrapper.setClassifier(new RandomForest());
    wrapper.setFolds(10);
    wrapper.setThreshold(0.001);

    fs.SelectAttributes(data);  
    fs.setEvaluator(wrapper);
    fs.setSearch(new BestFirst());
    System.out.println(fs.toResultsString());
}

以上是我使用随机森林 + bestfirst 搜索进行基于包装的属性选择的代码。但是,这会以某种方式使用 cfs 吐出结果,如下所示。

Search Method:
    Greedy Stepwise (forwards).
    Start set: no attributes
    Merit of best subset found:    0.287

Attribute Subset Evaluator (supervised, Class (nominal): 9 class):
    CFS Subset Evaluator
    Including locally predictive attributes

在整个班级中没有其他代码使用 CFS,而且我几乎被困住了。如果有任何帮助,我将不胜感激。谢谢!

【问题讨论】:

    标签: java attributes selection weka feature-selection


    【解决方案1】:

    你刚才倒序得到了默认方法,正确的顺序是先设置参数,然后调用selection:

    //first  
    fs.setEvaluator(wrapper);
    fs.setSearch(new BestFirst());
    //then
    fs.SelectAttributes(data);
    

    【讨论】:

      【解决方案2】:

      只需设置类索引,创建实例数据后添加这一行

      data.setClassIndex(data.numAttributes() - 1);
      

      我检查过,它工作正常。

      【讨论】:

        猜你喜欢
        • 2013-09-22
        • 2017-08-29
        • 1970-01-01
        • 1970-01-01
        • 2018-06-17
        • 2018-09-08
        • 1970-01-01
        • 1970-01-01
        • 2018-02-18
        相关资源
        最近更新 更多