【问题标题】:How can I copy attribute in java weka?如何在 java weka 中复制属性?
【发布时间】:2017-12-16 03:33:39
【问题描述】:

我正在使用 Weka 库来解决特征选择问题。我已读取数据如下:数据集是arff格式

    BufferedReader reader = new BufferedReader(new FileReader("D:\\Exp\\golf.arff"));
    Instances data = new Instances(reader);
    reader.close();
    data.setClassIndex(data.numAttributes() - 1);

例如,属性是温度、湿度、风、展望,最后一个是类。

现在我想将温度属性存储为实例。新数据将仅包含温度(它应该是实例类型,因为在进一步处理中我必须使用实例方法)

【问题讨论】:

    标签: java machine-learning weka feature-selection


    【解决方案1】:

    快速谷歌搜索带来了这个: 无需选择功能,只需删除您不需要的所有功能。

    import java.io.File;
    import weka.core.Instances;
    import weka.core.converters.ArffLoader;
    import weka.core.converters.ArffSaver;
    import weka.filters.Filter;
    import weka.filters.unsupervised.attribute.Remove;
    
    
    public class Convert4 {
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try
        {
            ArffLoader loader2= new ArffLoader();
            loader2.setSource(new File("C:/Users/RAHUL/Desktop/stack.arff"));
            Instances data2= loader2.getDataSet();
            //Load Arff
             String[] options = new String[2];
             options[0] = "-R";                                    // "range"
             options[1] = "1";                                     // first attribute
             Remove remove = new Remove();                         // new instance of filter
             remove.setOptions(options);                           // set options
             remove.setInputFormat(data2);                          // inform filter about dataset **AFTER** setting options
             Instances newData2 = Filter.useFilter(data2, remove);   // apply filter
             ArffSaver saver = new ArffSaver();
             saver.setInstances(newData2);
             saver.setFile(new File("C:/Users/RAHUL/Desktop/stack2.arff"));
             saver.writeBatch();
    }
    catch (Exception e)
    {}
    }
    }
    

    答案来自: How to remove particular attributes from arff file and produce modified arff?

    【讨论】:

    • 是的,我已经看到了。如果我想删除特定范围内的功能,我将如何做到这一点
    猜你喜欢
    • 1970-01-01
    • 2013-04-19
    • 1970-01-01
    • 2016-08-14
    • 2017-05-02
    • 1970-01-01
    • 2011-10-02
    • 2011-09-09
    • 2012-01-07
    相关资源
    最近更新 更多