【问题标题】:attribute selection assigned for each attribute为每个属性分配的属性选择
【发布时间】:2018-06-28 09:10:44
【问题描述】:

我通过使用 Eclipse IDE 进行 Java 开发,将 weka 与 java 结合使用。版本:霓虹灯 4.6。

我想知道如何提取以下值:

为每个属性分配的相关排名。

SVM-RFE 排序属性和为每个属性分配的权重值

我想在屏幕上看到这些值。

我正在使用 weka: 我试过这段代码:

public class AttributeSelectionTest {
      protected static void useRanker(Instances data) throws Exception {
            SVMAttributeEval  eval = new SVMAttributeEval();
            eval.buildEvaluator(data);
            Evaluation evaluation = new Evaluation(data);

            System.out.println(eval.getPercentToEliminatePerIteration());

            System.out.println(eval.attsToEliminatePerIterationTipText());

           eval.getPercentToEliminatePerIteration();
     for (int classInd = 0; classInd <  data.numAttributes(); classInd++)
              System.out.println(eval.rankBySVM(classInd,data));

         System.out.println(evaluation.toSummaryString());

          }



  public static void main(String[] args) throws Exception {
    // load data
         System.out.println("\n0. Loading data");
    DataSource source = new DataSource("data.arff"); 
    Instances data = source.getDataSet();

    if (data.classIndex() == -1)
      data.setClassIndex(data.numAttributes() - 1);


   useRanker(data);

  }
}

【问题讨论】:

    标签: java eclipse weka


    【解决方案1】:

    要获得 SVM-RFE 排名,请使用以下代码。使用您的文件数据并使用 fileHandler 加载它

    Dataset dataSet = FileHandler.loadDataset(new File("sample.data"), 4, ",");
    
    RecursiveFeatureEliminationSVM svmrfe = new RecursiveFeatureEliminationSVM(0.2);
    
    svmrfe.build(dataSet);
    
    for (int i = 0; i < svmrfe.noAttributes(); i++)
        System.out.println(svmrfe.rank(i));
    

    对于相同的数据,你可以得到属性选择排名

    ASEvaluation eval = new GainRatioAttributeEval();
    
    ASSearch search = new Ranker();
    
    WekaAttributeSelection attributeSelection = new WekaAttributeSelection(eval,search);
    
    wekaattrsel.build(dataSet);
    
    for (int i = 0; i &lt; attributeSelection.noAttributes(); i++) 
        System.out.println("Attribute : " +  i +  "  Ranks : " + attributeSelection.rank(i)); 
    

    【讨论】:

    • 我通过使用 Eclipse IDE 进行 Java 开发,将 weka 与 java 结合使用。版本:霓虹灯 4.6。
    猜你喜欢
    • 1970-01-01
    • 2021-05-30
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多