如何使用Encog规范化CSV文件?

我需要规范化CSV文件。 我跟着Jeff Heaton写的这篇文章 。 这是(部分)我的代码:

File sourceFile = new File("Book1.csv"); File targetFile = new File("Book1_norm.csv"); EncogAnalyst analyst = new EncogAnalyst(); AnalystWizard wizard = new AnalystWizard(analyst); wizard.wizard(sourceFile, true, AnalystFileFormat.DECPNT_COMMA); final AnalystNormalizeCSV norm = new AnalystNormalizeCSV(); norm.analyze(sourceFile, false, CSVFormat.ENGLISH, analyst); norm.setProduceOutputHeaders(false); norm.normalize(targetFile); 

我的代码和文章之间的唯一区别是这一行:

 norm.setOutputFormat(CSVFormat.ENGLISH); 

我试图使用它,但似乎在Encog 3.1.0中,该方法不存在。 我得到的错误是这个(看起来问题是行norm.normalize(targetFile)

 Exception in thread "main" org.encog.app.analyst.AnalystError: Can't find column: 11700 at org.encog.app.analyst.util.CSVHeaders.find(CSVHeaders.java:187) at org.encog.app.analyst.csv.normalize.AnalystNormalizeCSV.extractFields(AnalystNormalizeCSV.java:77) at org.encog.app.analyst.csv.normalize.AnalystNormalizeCSV.normalize(AnalystNormalizeCSV.java:192) at IEinSoftware.main(IEinSoftware.java:55) 

我添加了一个FAQ,其中显示了如何规范化CSV文件。 http://www.heatonresearch.com/faq/4/2

这是一个function…当然你需要创建一个分析师

 private EncogAnalyst _analyst; public void NormalizeFile(FileInfo SourceDataFile, FileInfo NormalizedDataFile) { var wizard = new AnalystWizard(_analyst); wizard.Wizard(SourceDataFile, _useHeaders, AnalystFileFormat.DecpntComma); var norm = new AnalystNormalizeCSV(); norm.Analyze(SourceDataFile, _useHeaders, CSVFormat.English, _analyst); norm.ProduceOutputHeaders = _useHeaders; norm.Normalize(NormalizedDataFile); }