00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 package de.picana.clusterer;
00014
00015 import de.picana.control.*;
00016
00017 import weka.core.*;
00018 import java.io.*;
00019
00020
00027 public class SimpleKMeans extends Clusterer {
00028
00029 private weka.clusterers.SimpleKMeans algo;
00030 private long time_total;
00031
00033 public SimpleKMeans() {
00034 }
00035
00036 public void buildClusterer(Instances set) throws TaskException {
00037 try {
00038 statwriter.println("algo_clusterer_name:SimpleKMeans");
00039 statwriter.println("algo_clusterer_training_set:" + infile);
00040
00041 algo = new weka.clusterers.SimpleKMeans();
00042 algo.setNumClusters(num_clusters);
00043 time_total = System.currentTimeMillis();
00044 algo.buildClusterer(training_set);
00045 time_total = System.currentTimeMillis() - time_total;
00046 statwriter.println("time_clusterer_total:" + time_total);
00047 } catch (Exception e) {
00048 throw new TaskException(e.toString());
00049 }
00050 }
00051
00052 public void saveModel(String filename) throws TaskException {
00053 try {
00054 File model = new File(filename);
00055 FileOutputStream fos = new FileOutputStream(model);
00056 ObjectOutputStream out = new ObjectOutputStream(fos);
00057
00058 out.writeInt(algo.numberOfClusters());
00059 out.writeObject(algo);
00060 out.close();
00061
00062 } catch (Exception e) {
00063 throw new TaskException(e.toString());
00064 }
00065 }
00066 }