package jminhep.clcontrol;
import jminhep.utils.*;
import jminhep.gui.SetEnv;
import jminhep.algorithms.FuzzyCMeansAlg;
import jminhep.algorithms.HierarchicalAlg;
import jminhep.algorithms.KMeansAlg;
import jminhep.algorithms.KMeansExchangeAlg;
import jminhep.clcontrol.*;
// analyse data
public class Analyse {
/**
* Main method to run clustering: Imod=1 - visual mode Imod=0 - mode for
* batch (no graphics)
*
* @param Imode
*
*/
public static void Run(int Imode) {
Runtime r = Runtime.getRuntime();
if (Imode == 1) {
SetEnv.statusbar.setText("Wait! Analysing..");
Global.GetSettings(); // get settings
Global.CPUtime = "running!";
Global.SetInfoTable();
Global.GetOptions();
Global.mem = null;
}
Global.Compactness = 0.0;
Global.PartitionCoefficient = 0.0;
Global.Description = "not filled yet";
Global.CC=null;
Global.SS=null;
Global.nPoints=null;
StopWatch sw = new StopWatch();
sw.start();
// System.out.println(SetEnv.Mode);
// get Kmeans2 -- standard mode ------------------------
if (SetEnv.Mode == 111) {
// System.out.println("Analyse Kmeans 0");
KMeansAlg km = new KMeansAlg(SetEnv.DATA);
km.setClusters(Global.Ncluster);
km.setOptions(Global.Niterations,Global.Eps);
km.run();
Global.Ncluster = km.getClusters();
Global.nPoints=km.getNumberPoints();
Global.Compactness = km.getCompactness();
Global.Description = km.getName();
Global.CC = km.getCenters();
Global.SS = km.getSeedHolder();
}
// get Kmeans0 -- standard mode, but run several times
if (SetEnv.Mode == 112) {
KMeansAlg km = new KMeansAlg(SetEnv.DATA);
km.setClusters(Global.Ncluster);
km.run(Global.Niterations);
Global.Ncluster = km.getClusters();
Global.nPoints=km.getNumberPoints();
Global.Compactness = km.getCompactness();
Global.CC = km.getCenters();
Global.SS = km.getSeedHolder();
Global.Description = km.getName();
}
// get Kmeans1 - exchange mode
if (SetEnv.Mode == 113) {
KMeansExchangeAlg km = new KMeansExchangeAlg(SetEnv.DATA);
km.runBest();
Global.Ncluster = km.getClusters();
Global.Description = km.getName();
if (km.getError() == 0) {
Global.CC = km.getCenters();
Global.SS = km.getSeedHolder();
Global.Compactness = km.getCompactness();
Global.nPoints= km.getNumberPoints();
}
}
// get Kmeans1 - exchange mode
if (SetEnv.Mode == 114) {
KMeansExchangeAlg km = new KMeansExchangeAlg(SetEnv.DATA);
km.setClusters(Global.Ncluster);
km.run();
Global.Description = km.getName();
if (km.getError() == 0) {
Global.CC = km.getCenters();
Global.SS = km.getSeedHolder();
Global.Compactness = km.getCompactness();
Global.nPoints= km.getNumberPoints();
}
}
// hearacity -- standard mode ------------------------
if (SetEnv.Mode == 121) {
// System.out.println("Analyse Kmeans HCluster");
HierarchicalAlg km = new HierarchicalAlg(SetEnv.DATA);
km.setClusters(Global.Ncluster);
km.run();
Global.Description = km.getName();
Global.CC = km.getCenters();
Global.Compactness = km.getCompactness();
Global.nPoints= km.getNumberPoints();
}
// hearacity -- standard mode ------------------------
if (SetEnv.Mode == 122) {
HierarchicalAlg km = new HierarchicalAlg(SetEnv.DATA);
km.runBest();
Global.Ncluster = km.getClusters();
Global.Description = km.getName();
Global.CC = km.getCenters();
Global.Compactness = km.getCompactness();
Global.nPoints= km.getNumberPoints();
}
// run fuzzy
if (SetEnv.Mode == 131) {
FuzzyCMeansAlg km = new FuzzyCMeansAlg(SetEnv.DATA);
km.setProb(Global.ShowProbab );
Global.Description = km.getName();
km.setClusters(Global.Ncluster);
km.setOptions(Global.Niterations, Global.Eps, Global.Fuzzines);
km.run();
Global.CC = km.getCenters();
Global.Compactness = km.getCompactness();
Global.PartitionCoefficient = km.getPartitionCoefficient();
Global.mem = km.getMembeship();
Global.nPoints= km.getNumberPoints();
km.delete();
}
// run fuzzy
if (SetEnv.Mode == 132) {
// System.out.println("Analyse Fuzzy best");
// Fuzzy.init();
FuzzyCMeansAlg km = new FuzzyCMeansAlg(SetEnv.DATA);
km.setProb(Global.ShowProbab);
// System.out.println(Global.Ncluster);
km.setOptions(Global.Niterations, Global.Eps, Global.Fuzzines);
km.runBest();
Global.Ncluster = km.getClusters();
Global.Description = km.getName();
Global.CC = km.getCenters();
Global.Compactness = km.getCompactness();
Global.PartitionCoefficient = km.getPartitionCoefficient();
Global.mem = km.getMembeship();
Global.nPoints= km.getNumberPoints();
km.delete();
}
r.gc();
if (Imode == 1) {
SetEnv.PLOT.clearData();
// Display.Data();
Display.Clusters();
SetEnv.PLOT.showPlot();
if (Global.ShowCenters) {
Display.Centers();
}
if (Global.ShowSeeds) {
Display.Seeds();
}
sw.stop();
Global.CPUtime = Long.toString(sw.getTime()) + " ms";
Global.SetInfoTable();
Global.summary = Global.Summary();
SetEnv.statusbar.setText("Finished: "+
Global.Description+" (CPU time="+Global.CPUtime+")");
}
}
}
Ads help maintain this website.