package ids.test;
import ids.clustering.model.Distance;
import ids.clustering.model.Domain;
import ids.framework.ConstraintBased;
import ids.framework.ConstraintWBasedMMD;
import ids.framework.ExperimentParams;
import ids.utils.CommonUtils;
public class TestConstraintWBasedMMD {
public static void main(String[] args) {
// Test MMD based framework on Iris data set
TestMMDBasedIris();
}
public static void TestMMDBasedIris() {
int n = 150;
CommonUtils utils = new CommonUtils(false);
// read iris data set
double[][] d1_data = utils.readDataFile("datasets/iris/iris_t1.csv", n, 2);
double[][] d2_data = utils.readDataFile("datasets/iris/iris_t2.csv", n, 2);
double[][] class_column = utils.readDataFile("datasets/iris/iris_class.csv", 150, 1);
int[] iris_class = new int[n];
for (int i = 0; i < n; i++) iris_class[i] = (int)class_column[i][0];
// Number of clusters
int k = 3;
int[] seeds = {66, 53, 104};
// Domain 1
Domain d1 = new Domain();
d1.data = d1_data;
d1.k = k;
d1.name = "Iris data set";
d1.number_of_iterations = 1;
d1.distance = Distance.SQEUCLIDEAN;
d1.number_constraints = 2;
d1.centroids = utils.getRows(d1_data, seeds);
// Domain 2
Domain d2 = new Domain();
d2.data = d2_data;
d2.k = k;
d2.name = "Iris data set";
d2.number_of_iterations = 1;
d2.distance = Distance.MATCH;
d2.number_constraints = 2;
d2.centroids = utils.getRows(d2_data, seeds);
// parameters
ExperimentParams par = new ExperimentParams();
par.maximum_number_iterations = 30;
par.minimum_number_iterations = 10;
par.verbose = true;
par.useTC = false;
// framework
ConstraintWBasedMMD f = new ConstraintWBasedMMD(d1, d2, par);
f.Start();
}
}