/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package org.neuroph.contrib.bpbench;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
/**
*
* @author Mladen Savic
*/
public class ExportUtil {
/**
* Delimiter used for generating csv
*/
private static final String DELIMITER = ", ";
/**
* Method for writing to csv into given file path
* @param filePath
* @param listOfTrainings
* @throws IOException
*/
public static void exportToCSV(String filePath, List listOfTrainings) throws IOException {
FileWriter out = new FileWriter(filePath + ".csv");
out.write(writeheader());
for (AbstractTraining training : listOfTrainings) {
out.write(prepareLine(training));
}
out.flush();
out.close();
}
/**
* Method for generating one line from training
* @param training
* @return
*/
private static String prepareLine(AbstractTraining training) {
String line = "";
line += training.getNeuralNet().getLearningRule().getClass().getName() + DELIMITER;
line += training.getStats().getMinIterations() + DELIMITER;
line += training.getStats().getMaxIterations() + DELIMITER;
line += training.getStats().getMeanIterations() + DELIMITER;
line += training.getStats().getStdIterations() + DELIMITER;
line += training.getStats().getMinError() + DELIMITER;
line += training.getStats().getMaxError() + DELIMITER;
line += training.getStats().getMeanError() + DELIMITER;
line += training.getStats().getStdError() + DELIMITER;
line += training.getSettings().getLearningRate() + DELIMITER;
line += training.getSettings().getMomentum() + DELIMITER;
line += training.getSettings().getMaxIterations() + DELIMITER;
line += training.getSettings().getMaxError() + DELIMITER;
line += String.valueOf(training.getSettings().isBatchMode()) + DELIMITER;
line += training.getSettings().getHiddenNeurons() + DELIMITER;
line += training.getSettings().getDecreaseFactor() + DELIMITER;
line += training.getSettings().getIncreaseFactor() + DELIMITER;
line += training.getSettings().getInitialDelta() + DELIMITER;
line += training.getSettings().getMaxDelta() + DELIMITER;
line += training.getSettings().getMinDelta() + DELIMITER + "\n";
return line;
}
/**
* Method for generating header for csv file
* @return
*/
private static String writeheader() {
String header = "";
header += "Algorithm" + DELIMITER;
header += "Minimum iterations" + DELIMITER;
header += "Maximum iterations" + DELIMITER;
header += "Mean of iterations" + DELIMITER;
header += "Standard deviation of iterations" + DELIMITER;
header += "Minimum total error" + DELIMITER;
header += "Maximum total error" + DELIMITER;
header += "Mean of total error" + DELIMITER;
header += "Standard deviation of total error" + DELIMITER;
header += "Learning rate" + DELIMITER;
header += "Momentum" + DELIMITER;
header += "Maximum iterations" + DELIMITER;
header += "Maximum error" + DELIMITER;
header += "Batch mode" + DELIMITER;
header += "Hidden neurons" + DELIMITER;
header += "Decrease factor" + DELIMITER;
header += "Increase factor" + DELIMITER;
header += "Initial delta" + DELIMITER;
header += "Maximum delta" + DELIMITER;
header += "Minimum delta" + DELIMITER + "\n";
return header;
}
}
Ads help maintain this website.