public static void TestLBMNABC() { Console.WriteLine("Start"); string dsname = "car"; string trainingSetPath = @"C:\0 - Khalid\Academics\Datasets\" + dsname + @"\TR0_" + dsname + ".arff"; string testingSetPath = @"C:\0 - Khalid\Academics\Datasets\" + dsname + @"\TS0_" + dsname + ".arff"; Dataset trainingSet = ArffHelper.LoadDatasetFromArff(trainingSetPath); Dataset testingSet = ArffHelper.LoadDatasetFromArff(testingSetPath); DataMining.ClassificationMeasures.AccuracyMeasure qualityEvaluator = new DataMining.ClassificationMeasures.AccuracyMeasure(); ISolutionQualityEvaluator <Edge> trainingQualityEvaluator = new likelihoodQualityEvaluator(trainingSet); IHeuristicValueCalculator <Edge> calculator = new MICalculator(); int seed = (int)DateTime.Now.Ticks; BayesianMultinetClassifier lmnabclassifier = SingleTest.CreateLMNAntBayesianClassification(seed, 10, 5, 10, 3, trainingSet, trainingQualityEvaluator, calculator, true); double quality = SingleTest.TestClassifier(lmnabclassifier, testingSet, qualityEvaluator); quality = Math.Round(quality * 100, 2); Console.WriteLine("LMNABC Quality: " + quality.ToString()); Console.WriteLine("End"); //Console.ReadLine(); }
private double EvaluateQuality(List <Ant <Edge> > ants) { BayesianMultinetClassifier classifier = this.ConstructMulitNetClassifier(ants); double quality = this._classificationQualityEvaluator.CalculateMeasure(DataMining.ClassificationMeasures.ConfusionMatrix.GetConfusionMatrixes(classifier, this._trainingSet)); return(quality); }
private BayesianMultinetClassifier ConstructMulitNetClassifier(List <Ant <Edge> > ants) { BayesianMultinetClassifier mnClassifier = new BayesianMultinetClassifier(this._trainingSet.Metadata); for (int classIndex = 0; classIndex < this._trainingSet.Metadata.Target.Values.Length; classIndex++) { BayesianNetwork bayesianNetwork = new BayesianNetwork(this._datasets[classIndex].Metadata, ants[classIndex].Solution.ToList()); bayesianNetwork.LearnParameters(this._datasets[classIndex]); mnClassifier.AddBayesianNetwork(classIndex, bayesianNetwork); } return(mnClassifier); }