public static BayesianClusterMultinetClassifier CreateAntClustBMNClassifier_IB(int seed, Dataset dataset, int maxIterations, int colonySize, int convergence, int clustersNumber, ISimilarityMeasure similarityMeasure, IClassificationQualityMeasure classificationMeasure, IClassificationAlgorithm algorithm, bool fireEvents) { DataMining.Utilities.RandomUtility.Initialize(seed); DefaultHeuristicCalculator <ClusterExampleAssignment> calculator = new DefaultHeuristicCalculator <ClusterExampleAssignment>(); ClusteringIBInvalidator invalidator = new ClusteringIBInvalidator(); ClusteringClassificationQualityEvaluator evaluator = new ClusteringClassificationQualityEvaluator(classificationMeasure, algorithm); evaluator.Dataset = dataset; KMeansLocalSearch localSearch = new KMeansLocalSearch(dataset, 1, similarityMeasure, evaluator); Problem <DataMining.Model.ClusterExampleAssignment> problem = new Problem <DataMining.Model.ClusterExampleAssignment>(invalidator, calculator, evaluator, localSearch); AntClustBMN_IB antClustBMN = new AntClustBMN_IB(maxIterations, colonySize, convergence, problem, clustersNumber, similarityMeasure, dataset, true, algorithm, classificationMeasure); antClustBMN.OnPostColonyIteration += new EventHandler(antClustering_OnPostColonyIteration); return(antClustBMN.CreateClassifier() as BayesianClusterMultinetClassifier); }
public static ClusteringSolution CreateACOClusters_IB(int seed, Dataset dataset, int clustersNumber, ISimilarityMeasure similarityMeasure, int maxIterations, int colonySize, int convergenceIterations, bool fireEvents, bool performLocalSearch) { DataMining.Utilities.RandomUtility.Initialize(seed); DefaultHeuristicCalculator <ClusterExampleAssignment> calculator = new DefaultHeuristicCalculator <ClusterExampleAssignment>(); ClusteringIBInvalidator invalidator = new ClusteringIBInvalidator(); DataMining.ProximityMeasures.IClusteringQualityMeasure measure = new CohesionClusteringMeasure(); ClusteringQualityEvaluator cohesionEvaluator = new ClusteringQualityEvaluator(measure); KMeansLocalSearch localSearch = new KMeansLocalSearch(dataset, 1, similarityMeasure, cohesionEvaluator); ACO.ProblemSpecifics.ISolutionQualityEvaluator <DataMining.Model.ClusterExampleAssignment> evaluator = new ClusteringQualityEvaluator(measure); Problem <DataMining.Model.ClusterExampleAssignment> problem = new Problem <DataMining.Model.ClusterExampleAssignment>(invalidator, calculator, evaluator, localSearch); ACOClustering_IB antClustering = new ACOClustering_IB(maxIterations, colonySize, convergenceIterations, problem, clustersNumber, similarityMeasure, dataset, performLocalSearch); antClustering.OnPostColonyIteration += new EventHandler(antClustering_OnPostColonyIteration); return(antClustering.CreateClusters()); }
public static void TestACOCluster_IBThenBMN() { int seed = (int)DateTime.Now.Ticks; Console.WriteLine("Start"); string datasetFile = folderPath + "\\" + datasetName + ".arff"; Dataset trainingSet = ArffHelper.LoadDatasetFromArff(datasetFile); Dataset testingSet = ArffHelper.LoadDatasetFromArff(datasetFile); double avgQualiy = 0; for (int i = 0; i < 1; i++) { DataMining.ProximityMeasures.ISimilarityMeasure similarityMeasure = new DataMining.ProximityMeasures.ClassBasedSimilarityMeasure(trainingSet); //DataMining.ProximityMeasures.ISimilarityMeasure similarityMeasure = new DataMining.ProximityMeasures.BinaryMatchingSimilarityMeasure(); DataMining.ClassificationMeasures.IClassificationQualityMeasure accuracy = new DataMining.ClassificationMeasures.AccuracyMeasure(); DataMining.Algorithms.IClassificationAlgorithm naive = new NaiveBayesAlgorithm(); DefaultHeuristicCalculator <ClusterExampleAssignment> calculator = new DefaultHeuristicCalculator <ClusterExampleAssignment>(); ClusteringIBInvalidator invalidator = new ClusteringIBInvalidator(); DataMining.ProximityMeasures.IClusteringQualityMeasure measure = new CohesionClusteringMeasure(); ClusteringQualityEvaluator cohesionEvaluator = new ClusteringQualityEvaluator(measure); KMeansLocalSearch localSearch = new KMeansLocalSearch(trainingSet, 1, similarityMeasure, cohesionEvaluator); ACO.ProblemSpecifics.ISolutionQualityEvaluator <DataMining.Model.ClusterExampleAssignment> evaluator = new ClusteringQualityEvaluator(measure); Problem <DataMining.Model.ClusterExampleAssignment> problem = new Problem <DataMining.Model.ClusterExampleAssignment>(invalidator, calculator, evaluator, localSearch); DataMining.Algorithms.IClusteringAlgorithm AntClustering = new ACOClustering_IB(1000, 10, 10, problem, 10, similarityMeasure, true); DataMining.Model.IClassifier cBMNClassifier = SingleTest.CreateClusteringBMNClassifier(seed, 10, trainingSet, similarityMeasure, accuracy, AntClustering, naive, true); double quality = SingleTest.TestClassifier(cBMNClassifier, testingSet, accuracy); Console.WriteLine("Quality: " + quality.ToString()); avgQualiy += quality; } Console.WriteLine(avgQualiy / 10); Console.WriteLine("End"); }