我有一个CSV文件,我想将其转换为SequenceFile,以便在使用随机森林算法的分类任务中使用。我怎么能这样做呢 mahout 0.10和netbeans?
我的数据包含数字和名义值: http://archive.ics.uci.edu/ml/machine-learning-databases/00296/
答案 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许可证)。