2015-05-21 2 views
0

У меня есть файл CSV, который я бы хотел преобразовать в SequenceFile для использования в задаче классификации с использованием произвольного алгоритма леса. Как это сделать, используя mahout 0.10 и netbeans?Преобразование CSV-файла в последовательность с использованием Mahout 0.10 для классификации с использованием случайного леса

мои данные содержат числовые и номинальные значения: http://archive.ics.uci.edu/ml/machine-learning-databases/00296/

ответ

0

Используйте парсер CSV в uniVocity-parsers читать ваши файлы.

У меня был быстрый взгляд на ваш файл, и вы можете конвертировать их «нет», «да» и значения «None» для булева/нуль очень легко:

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).