使用Mahout 0.10将CSV文件转换为序列,以便使用随机森林进行分类

时间:2015-05-21 10:39:46

标签: java csv mahout random-forest

我有一个CSV文件,我想将其转换为SequenceFile,以便在使用随机森林算法的分类任务中使用。我怎么能这样做呢 mahout 0.10和netbeans?

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

1 个答案:

答案 0 :(得分:0)

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

我快速查看了您的文件,您可以转换这些文件" no"," yes"和"无"很容易将值设置为boolean / null:

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许可证)。

相关问题