/** * Process the file and cluster. * * @param outputFile The output file. * @param clusters The number of clusters. * @param theAnalyst The analyst to use. * @param iterations The number of iterations to use. */ public void process( final File outputFile, final int clusters, final EncogAnalyst theAnalyst, final int iterations) { final PrintWriter tw = this.prepareOutputFile( outputFile, analyst.getScript().getNormalize().countActiveFields() - 1, 1); resetStatus(); final KMeansClustering cluster = new KMeansClustering(clusters, this.data); cluster.iteration(iterations); int clusterNum = 0; for (final MLCluster cl : cluster.getClusters()) { for (final MLData item : cl.getData()) { final int clsIndex = item.size(); final LoadedRow lr = new LoadedRow(this.getFormat(), item.getData(), 1); lr.getData()[clsIndex] = "" + clusterNum; writeRow(tw, lr); } clusterNum++; } reportDone(false); tw.close(); }