【问题标题】:Convert CSV file into sequence using Mahout 0.10 for classification using random forest使用 Mahout 0.10 将 CSV 文件转换为序列以使用随机森林进行分类
【发布时间】:2015-08-02 23:33:10
【问题描述】:

我有一个 CSV 文件,我想将其转换为 SequenceFile 以用于使用随机森林算法的分类任务。我该如何使用 mahout 0.10 和 netbeans?

我的数据包含数值和标称值: http://archive.ics.uci.edu/ml/machine-learning-databases/00296/

【问题讨论】:

    标签: java csv mahout random-forest


    【解决方案1】:

    使用 uniVocity-parsers 中的 CSV 解析器读取您的文件。

    我快速浏览了您的文件,您可以很容易地将这些“否”、“是”和“无”值转换为布尔值/空值:

    ObjectRowListProcessor rowProcessor = new ObjectRowListProcessor();
    
    rowProcessor.convertFields(Conversions.toBoolean("yes", "no")).set("metformin-rosiglitazone","metformin-pioglitazone","change","diabetesMed","readmitted")); //and all other fields where this makes sense.
    
    rowProcessor.convertFields(Conversions.toLowerCase(), Conversions.toNull("none", "?")).set("another field", "and another field");
    
    CsvParserSettings parserSettings = new CsvParserSettings();
    parserSettings.setRowProcessor(rowProcessor);
    parserSettings.setHeaderExtractionEnabled(true);
    
    CsvParser parser = new CsvParser(parserSettings);
    
    //the rowProcessor will be executed here.
    parser.parse(YOUR_INPUT_HERE);
    
    List<Object[]> rows = rowProcessor.getRows();
    

    如果您更喜欢带有注释的对象,您可以使用BeanListProcessor,详细说明为here。也许这对你来说是最好的方法。

    披露:我是这个库的作者。它是开源免费的(Apache V2.0 许可)。

    【讨论】:

      猜你喜欢
      • 2015-06-11
      • 2015-07-30
      • 2014-03-08
      • 1970-01-01
      • 2015-09-23
      • 2016-05-25
      • 1970-01-01
      • 2014-03-25
      • 2013-06-12
      相关资源
      最近更新 更多