package ids.test;
import ids.clustering.model.Distance;
import ids.clustering.model.Domain;
import ids.clustering.model.PairDoubles;
import ids.clustering.model.PairDoublesMatrix;
import ids.experiment.dataset.OptimalNumberConstraints;
import ids.utils.CommonUtils;
public class TestOptimalNumberConstraints {
public static void main(String[] args) {
// number of clusters
int k = 2;
// load utilities
CommonUtils utils = new CommonUtils(false);
// read class labels
int[] class_labels = utils.readVectorFromFile("datasets/heart/class_column.csv");
//class_labels = utils.addToVector(class_labels, -1);
// Domain 1
Domain d1 = new Domain();
d1.data = utils.readDataFile("datasets/heart/ndata.csv");
d1.k = k;
d1.name = "Heart data set: numerical domain";
d1.number_of_iterations = 1;
d1.distance = Distance.SQEUCLIDEAN;
d1.number_constraints = -1;
// Domain 2
Domain d2 = new Domain();
d2.data = utils.readDataFile("datasets/heart/cdata.csv");
d2.k = k;
d2.name = "Heart data set: categorical domain";
d2.number_of_iterations = 1;
d2.distance = Distance.MATCH;
d2.number_constraints = -1;
// Find optimal number of constraints
OptimalNumberConstraints onc = new OptimalNumberConstraints(d1, d2, 10);
PairDoubles res = onc.RunOnceNMI(5, 5, class_labels);
}
public static void TestAdultDataAllNMI() {
// number of clusters
int k = 2;
// load utilities
CommonUtils utils = new CommonUtils(false);
// read class labels
int[] class_labels = utils.readVectorFromFile("datasets/adult/class_column.csv");
// Domain 1
Domain d1 = new Domain();
d1.data = utils.readDataFile("datasets/adult/ndata.csv");
d1.k = k;
d1.name = "Adult data set: numerical domain";
d1.number_of_iterations = 1;
d1.distance = Distance.SQEUCLIDEAN;
d1.number_constraints = -1;
// Domain 2
Domain d2 = new Domain();
d2.data = utils.readDataFile("datasets/adult/cdata.csv");
d2.k = k;
d2.name = "Adult data set: categorical domain";
d2.number_of_iterations = 1;
d2.distance = Distance.MATCH;
d2.number_constraints = -1;
// Find optimal number of constraints
OptimalNumberConstraints onc = new OptimalNumberConstraints(d1, d2, 2);
PairDoublesMatrix res = onc.RunAllNMI(5, 6, class_labels);
// save to hard drive
String domain1_filename = "datasets/adult/results/number_constraints_d1_nmi.csv";
String domain2_filename = "datasets/adult/results/number_constraints_d2_nmi.csv";
utils.saveToFile(res.v1, domain1_filename);
utils.saveToFile(res.v2, domain2_filename);
}
public static void TestHearDataAllNMI() {
// number of clusters
int k = 2;
// load utilities
CommonUtils utils = new CommonUtils(false);
// read class labels
int[] class_labels = utils.readVectorFromFile("datasets/heart/class_column.csv");
class_labels = utils.addToVector(class_labels, -1);
// Domain 1
Domain d1 = new Domain();
d1.data = utils.readDataFile("datasets/heart/ndata.csv");
d1.k = k;
d1.name = "Heart data set: numerical domain";
d1.number_of_iterations = 1;
d1.distance = Distance.SQEUCLIDEAN;
d1.number_constraints = -1;
// Domain 2
Domain d2 = new Domain();
d2.data = utils.readDataFile("datasets/heart/cdata.csv");
d2.k = k;
d2.name = "Heart data set: categorical domain";
d2.number_of_iterations = 1;
d2.distance = Distance.MATCH;
d2.number_constraints = -1;
// Find optimal number of constraints
OptimalNumberConstraints onc = new OptimalNumberConstraints(d1, d2, 10);
PairDoublesMatrix res = onc.RunAllNMI(2, 30, class_labels);
// save to hard drive
String domain1_filename = "C://Repo//phd_code//Constraint//optimalNumberConstraints/results/heart/number_constraints_d1_nmi.csv";
String domain2_filename = "C://Repo//phd_code//Constraint//optimalNumberConstraints/results/heart/number_constraints_d2_nmi.csv";
utils.saveToFile(res.v1, domain1_filename);
utils.saveToFile(res.v2, domain2_filename);
}
public static void TestCreditDataAllNMI() {
// number of clusters
int k = 2;
// load utilities
CommonUtils utils = new CommonUtils(false);
// read class labels
int[] class_labels = utils.readVectorFromFile("datasets/credit/class_column.csv");
// Domain 1
Domain d1 = new Domain();
d1.data = utils.readDataFile("datasets/credit/ndata.csv");
d1.k = k;
d1.name = "Credit card data set: numerical domain";
d1.number_of_iterations = 1;
d1.distance = Distance.SQEUCLIDEAN;
d1.number_constraints = -1;
// Domain 2
Domain d2 = new Domain();
d2.data = utils.readDataFile("datasets/credit/cdata.csv");
d2.k = k;
d2.name = "Credit card set: categorical domain";
d2.number_of_iterations = 1;
d2.distance = Distance.MATCH;
d2.number_constraints = -1;
// Find optimal number of constraints
OptimalNumberConstraints onc = new OptimalNumberConstraints(d1, d2, 10);
PairDoublesMatrix res = onc.RunAllNMI(2, 30, class_labels);
// save to hard drive
//String domain1_filename = "C://Repo//phd_code//Constraint//optimalNumberConstraints/results/credit_card/number_constraints_d1_nmi.csv";
String domain1_filename = "C://_Research//_Framework//Phd_code//Constraint//optimalNumberConstraints//results//credit_card//number_constraints_d1_nmi.csv";
//String domain2_filename = "C://Repo//phd_code//Constraint//optimalNumberConstraints/results/credit_card/number_constraints_d2_nmi.csv";
String domain2_filename = "C://_Research//_Framework//Phd_code//Constraint//optimalNumberConstraints//results//credit_card//number_constraints_d2_nmi.csv";
utils.saveToFile(res.v1, domain1_filename);
utils.saveToFile(res.v2, domain2_filename);
}
public static void TestHearDataAllDB() {
// number of clusters
int k = 2;
// load utilities
CommonUtils utils = new CommonUtils(false);
// Domain 1
Domain d1 = new Domain();
d1.data = utils.readDataFile("datasets/heart/ndata.csv");
d1.k = k;
d1.name = "Heart data set: numerical domain";
d1.number_of_iterations = 1;
d1.distance = Distance.SQEUCLIDEAN;
d1.number_constraints = -1;
// Domain 2
Domain d2 = new Domain();
d2.data = utils.readDataFile("datasets/heart/cdata.csv");
d2.k = k;
d2.name = "Heart data set: categorical domain";
d2.number_of_iterations = 1;
d2.distance = Distance.MATCH;
d2.number_constraints = -1;
// Find optimal number of constraints
OptimalNumberConstraints onc = new OptimalNumberConstraints(d1, d2, 10);
PairDoublesMatrix res = onc.RunAllDB(2, 30);
// save to hard drive
String domain1_filename = "C://Repo//phd_code//Constraint//optimalNumberConstraints/results/heart/number_constraints_d1.csv";
String domain2_filename = "C://Repo//phd_code//Constraint//optimalNumberConstraints/results/heart/number_constraints_d2.csv";
utils.saveToFile(res.v1, domain1_filename);
utils.saveToFile(res.v2, domain2_filename);
}
public static void TestCreditDataAllDB() {
// number of clusters
int k = 2;
// load utilities
CommonUtils utils = new CommonUtils(false);
// Domain 1
Domain d1 = new Domain();
d1.data = utils.readDataFile("datasets/credit/ndata.csv");
d1.k = k;
d1.name = "Credit card data set: numerical domain";
d1.number_of_iterations = 1;
d1.distance = Distance.SQEUCLIDEAN;
d1.number_constraints = -1;
// Domain 2
Domain d2 = new Domain();
d2.data = utils.readDataFile("datasets/credit/cdata.csv");
d2.k = k;
d2.name = "Credit card data set: categorical domain";
d2.number_of_iterations = 1;
d2.distance = Distance.MATCH;
d2.number_constraints = -1;
// Find optimal number of constraints
OptimalNumberConstraints onc = new OptimalNumberConstraints(d1, d2, 10);
PairDoublesMatrix res = onc.RunAllDB(2, 30);
// save to hard drive
//String domain1_filename = "C://Repo//phd_code//Constraint//optimalNumberConstraints/results/credit_card/number_constraints_d1_db.csv";
String domain1_filename = "C://_Research//_Framework//Phd_code//Constraint//optimalNumberConstraints//results//credit_card//number_constraints_d1_db.csv";
//String domain2_filename = "C://Repo//phd_code//Constraint//optimalNumberConstraints/results/credit_card/number_constraints_d2_db.csv";
String domain2_filename = "C://_Research//_Framework//Phd_code//Constraint//optimalNumberConstraints//results//credit_card//number_constraints_d2_db.csv";
utils.saveToFile(res.v1, domain1_filename);
utils.saveToFile(res.v2, domain2_filename);
}
public static void TestHearDataOnceDB() {
// number of clusters
int k = 2;
// load utilities
CommonUtils utils = new CommonUtils(false);
// Domain 1
Domain d1 = new Domain();
d1.data = utils.readDataFile("datasets/heart/ndata.csv");
d1.k = k;
d1.name = "Heart data set: numerical domain";
d1.number_of_iterations = 1;
d1.distance = Distance.SQEUCLIDEAN;
d1.number_constraints = -1;
// Domain 2
Domain d2 = new Domain();
d2.data = utils.readDataFile("datasets/heart/cdata.csv");
d2.k = k;
d2.name = "Heart data set: categorical domain";
d2.number_of_iterations = 1;
d2.distance = Distance.MATCH;
d2.number_constraints = -1;
// Find optimal number of constraints
OptimalNumberConstraints onc = new OptimalNumberConstraints(d1, d2, 10);
PairDoubles res = onc.RunOnceDB(10, 10);
}
}