package ids.test;
import ids.clustering.model.Distance;
import ids.clustering.model.Domain;
import ids.clustering.utils.ClusterUtils;
import ids.clustering.utils.ClusterValidation;
import ids.framework.EnsembleBased;
import ids.utils.CommonUtils;
public class TestEnsembleBased {
/**
* @param args
*/
public static void main(String[] args) {
// Run it on Iris data set
TestIris();
}
public static void TestIris() {
// utilities
CommonUtils utils = new CommonUtils(false);
ClusterValidation valid = new ClusterValidation(true);
ClusterUtils clusterUtils = new ClusterUtils(false);
// input data sets
int k = 3;
double[][] data_d1 = utils.readDataFile("datasets/iris/iris_t1.csv");
double[][] data_d2 = utils.readDataFile("datasets/iris/iris_t2.csv");
Domain domain1 = new Domain(data_d1, Distance.SQEUCLIDEAN, k);
Domain domain2 = new Domain(data_d2, Distance.SQEUCLIDEAN, k);
// test ensemble framework with voting
EnsembleBased eb = new EnsembleBased(domain1, domain2, 10, 10);
eb.debug = true;
int[] finalIDS_voting = eb.Do_Voting();
int[] finalIDS_clustering = eb.Do_Clustering(k);
// validation
int[] class_labels = utils.readVectorFromFile("datasets/iris/iris_class.csv");
double nmi_voting = valid.findNMI(utils.addToVector(finalIDS_voting, 1), class_labels);
double nmi_clustering = valid.findNMI(clusterUtils.findClusterCorrespondence(class_labels, finalIDS_clustering), class_labels);
}
}