java - 为每个属性分配的属性选择

标签 java eclipse weka

我通过使用 Eclipse IDE 进行 Java 开发,将 weka 与 java 结合使用。版本:Neon 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);

  }
}

最佳答案

要获得 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)); 

关于java - 为每个属性分配的属性选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48335811/

相关文章:

java - 在 Java 中的 AppEngine 本地开发服务器上强制 TLS > 1.0

java - 从不运行 `if` ,总是 `else`

java - 在 Eclipse 中生成 libgdx 项目时出现问题

java - R 和 Java + WEKA 在计算最近邻方面的差异

java - <s :fileUpload> is returning null value

Java - 如何在循环中每重复 n 次换行

java - 使用java在arff文件中定义属性

machine-learning - 如何让 Weka 分类器使用更少的内存和 CPU 时间?

java - 查找从 Java 中的 .txt 文件读取的字符串的特定元素

Java Clip(Clip.Stop 不起作用)