package ids.test; import ids.clustering.model.Distance; import ids.clustering.utils.ClusterUtils; import ids.clustering.utils.ClusterValidation; import ids.utils.CommonUtils; public class TestClusterValidation { private static ClusterUtils clusterUtils; private static CommonUtils utils; private static ClusterValidation clusterValid; /** * @param args */ public static void main(String[] args) { TestNMI(); } private static void TestNMI() { if (clusterUtils == null) clusterUtils = new ClusterUtils(true); if (utils == null) utils = new CommonUtils(true); if (clusterValid == null) clusterValid = new ClusterValidation(true); // read clustering result String classFileName = "C:\\_Research\\_Framework\\Phd_code\\Test\\card\\m.data"; int[] m = clusterUtils.convertDataMatrixToIDX(utils.readDataFile(classFileName)); // read clustering result String idxFileName = "C:\\_Research\\_Framework\\Phd_code\\Test\\card\\idx.data"; int[] idx = clusterUtils.convertDataMatrixToIDX(utils.readDataFile(idxFileName)); // read class distribution String dataFileName = "C:\\_Research\\_Framework\\Phd_code\\Test\\card\\ndata.data"; double[][] data = utils.readDataFile(dataFileName); double mu = clusterValid.findNMI(idx, m); System.out.printf("Java: NMI: %5.4f\n", mu); } private static void TestDunnIndex() { if (clusterUtils == null) clusterUtils = new ClusterUtils(true); if (utils == null) utils = new CommonUtils(true); if (clusterValid == null) clusterValid = new ClusterValidation(true); int k = 2; // read clustering result String idxFileName = "C:\\_Research\\_Framework\\Phd_code\\Test\\idx.data"; int[] idx = clusterUtils.convertDataMatrixToIDX(utils.readDataFile(idxFileName)); // read class distribution String dataFileName = "C:\\_Research\\_Framework\\Phd_code\\Test\\cl_data.data"; double[][] data = utils.readDataFile(dataFileName); // get Dunn`s Index double dunn_index = clusterValid.findDunnIndex(data, idx, k, Distance.SQEUCLIDEAN); System.out.printf("Dunn`s Index: %5.10f\n", dunn_index); } private static void TestAdultDunnIndex() { if (clusterUtils == null) clusterUtils = new ClusterUtils(true); if (utils == null) utils = new CommonUtils(true); if (clusterValid == null) clusterValid = new ClusterValidation(true); int k = 2; // read clustering result String idxFileName = "C:\\_Research\\_Framework\\Phd_code\\Test\\adult\\idx.data"; int[] idx = clusterUtils.convertDataMatrixToIDX(utils.readDataFile(idxFileName)); // read class distribution String dataFileName = "C:\\_Research\\_Framework\\Phd_code\\Test\\adult\\adult.data"; double[][] data = utils.readDataFile(dataFileName); // get Dunn`s Index double dunn_index = clusterValid.findDunnIndex(data, idx, k, Distance.SQEUCLIDEAN); System.out.printf("Dunn`s Index: %5.10f\n", dunn_index); } }