【问题标题】:Find WEKA attributes class names for option handling查找 WEKA 属性类名称以进行选项处理
【发布时间】:2013-11-14 14:40:15
【问题描述】:

我目前正在 WEKA 中编写一个新的过滤器。在将这个过滤器应用于读取数据集之前,应该可以设置一些选项。其中之一应该是属性类名。现在的答案是,在应用过滤器时调用的处理方法之前,哪个变量可以让我访问读取的数据集??

似乎必须有一个包含所有信息的 Instances 变量,因为 WEKA 资源管理器在打开文件后会显示所有不同的类。

【问题讨论】:

    标签: java data-mining weka


    【解决方案1】:

    首先,您必须加载(或创建)一组实例。如果您保存了“.arrf”文件,您可以按如下方式加载实例:

    // initialize source
    DataSource source=null;
    Instances originalTrain=null;
    String rootPath="/some/location/filename.arff" //the location and name of your data
    source = new DataSource(rootPath);
    originalTrain = source.getDataSet();  //originalTrain is an Instance object with your data 
    

    现在,如果我了解您要查找的内容,则可以通过查看 Attribute 类来访问此信息。

    Instances originalTrain=//load the training data  
    
    //find the name of the first attribute
    String name=originalTrain.attribute(0).name(); 
    System.out.println(name); //look at new name
    

    您可以通过查看JavaDoc了解更多关于 Attribute 类和这些不同功能的信息

    【讨论】:

    • 问题是我不知道从哪里获取实例对象以访问属性。我的代码第一次生成 Instances 对象是在应用过滤器时。但是在输入之前的某个地方似乎保存在另一个 Instances 对象中。这就是我正在寻找的。我按照这个描述编写了新的过滤器。而且它不包括数据集的特定加载。 weka.wikispaces.com/Writing+your+own+Filter+%28post+3.5.3%29
    • 我更新了如何加载数据集...这是你的意思吗?
    • 有没有办法在不知道有多少的情况下获取所有属性名称?
    • 如果我理解正确,您可以使用 for 循环,在其中使用 originalTrain.numAttributes() 查询属性数? weka.sourceforge.net/doc.stable/weka/core/…
    猜你喜欢
    • 2016-08-05
    • 2013-02-13
    • 2012-08-03
    • 2016-03-10
    • 1970-01-01
    • 2015-04-08
    • 2012-10-25
    • 1970-01-01
    • 2012-11-09
    相关资源
    最近更新 更多