package ids.test; import ids.clustering.model.Distance; import ids.clustering.model.View; import ids.clustering.utils.ClusterValidation; import ids.framework.MultiviewKmeans; import ids.utils.CommonUtils; public class TestMultiviewSpherical { public static void main(String[] args) { TestHeartDataset(); } private static void TestHeartDataset() { // load utilities CommonUtils utils = new CommonUtils(false); // input data View view1 = new View(utils.readDataFile("datasets/heart/ndata.csv"), Distance.SQEUCLIDEAN); View view2 = new View(utils.readDataFile("datasets/heart/cdata.csv"), Distance.MATCH); int k = 2; // Multiview Spherical K-means MultiviewKmeans ms = new MultiviewKmeans(view1, view2, k, true); int[] idx = ms.Cluster(); // Evaluate clustering int[] class_labels = utils.readVectorFromFile("datasets/heart/class_column.csv"); ClusterValidation valid = new ClusterValidation(); double nmi = valid.findNMI(idx, class_labels); System.out.printf("MultiView Kmeans NMI: %5.4f\n", nmi); } }