Beispiel #1
0
        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();
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }