package ids.test; import ids.clustering.utils.ClusterUtils; import ids.utils.CommonUtils; import ids.utils.HungarianAlgorithm; public class TestClusteringUtils { private static ClusterUtils clusterUtils; private static CommonUtils utils; /** * Tests Clustering utils */ public static void main(String[] args) { TestClusterUtils(); } @SuppressWarnings("static-access") public static void TestClusterUtils() { if (clusterUtils == null) clusterUtils = new ClusterUtils(true); if (utils == null) utils = new CommonUtils(true); int k = 4; // read clustering result String idxFileName = "C:\\_Research\\_Framework\\Phd_code\\Test\\idx.data"; int[] idx = clusterUtils.convertDataMatrixToIDX(utils.readDataFile(idxFileName)); // read class distribution String mFileName = "C:\\_Research\\_Framework\\Phd_code\\Test\\m.data"; int[] m = clusterUtils.convertDataMatrixToIDX(utils.readDataFile(mFileName)); double[][] J0 = clusterUtils.findJaccardIndex(idx, m, k, k); utils.printMatrix(J0); double[][] J = clusterUtils.findJaccardIndex(idx, m); System.out.println("Jaccard Index"); utils.printMatrix(J); double[][] invJ = utils.invert(J); System.out.println("Inverted Jaccard Index"); utils.printMatrix(invJ); HungarianAlgorithm h = new HungarianAlgorithm(); int[][] match = h.hgAlgorithm(J, "max"); System.out.println("Cluster - class assigment"); utils.printMatrix(match); /* double[][] testJ = {{0.2, 0.1, 0.8}, {0.7, 0.1, 0.1}}; int[][] testMatch = h.hgAlgorithm(testJ, "max"); System.out.println("Cluster - class assigment"); utils.printMatrix(testMatch); */ int[] temp = clusterUtils.findClusterCorrespondence(m, idx); System.out.println("Relabeling the idx"); utils.printVector(temp); double[][] J_final = clusterUtils.findJaccardIndex(m, temp); System.out.println("Jaccard Index - final"); utils.printMatrix(J_final); } }