示例#1
0
        public static BayesianNetworkClassifier CreateGreedyBayesianClassifier(int maxDependencies, int maxEvaluations, Dataset trainingSet, DataMining.ClassificationMeasures.IClassificationQualityMeasure qualityEvaluator, bool fireEvents)
        {
            CyclicRelationInvalidator invalidator = new CyclicRelationInvalidator();

            invalidator.MaxDependencies = maxDependencies;
            BayesianClassificationQualityEvaluator evaluator = new BayesianClassificationQualityEvaluator(qualityEvaluator);

            evaluator.ValidationSet = trainingSet;
            BackwardRemovalLocalSearch localSearch = new BackwardRemovalLocalSearch(evaluator);

            Problem <Edge> problem = new Problem <Edge>(invalidator, null, evaluator, localSearch);

            GHC hcblassifier = new GHC(0, 0, 0, problem, maxEvaluations, trainingSet, trainingSet);


            if (fireEvents)
            {
                hcblassifier.OnPostEvaluation += new EventHandler(hcblassifier_OnPostEvaluation);
                hcblassifier.OnProgress       += new EventHandler(hcblassifier_OnProgress);
            }


            hcblassifier.Work();

            BayesianNetworks.Model.BayesianNetworkClassifier bnclassifier = hcblassifier.BayesianNetworkClassifier;
            return(bnclassifier);
        }
示例#2
0
 private static void hcblassifier_OnPostEvaluation(object sender, EventArgs e)
 {
     if (sender is GHC)
     {
         GHC classifier = sender as GHC;
         Console.WriteLine("Counter: " + classifier.EvaluationsCounter.ToString());
     }
     else
     {
         K2Algorithm classifier = sender as K2Algorithm;
         Console.WriteLine("Counter: " + classifier.EvaluationsCounter.ToString());
     }
 }
示例#3
0
 static void hcblassifier_OnProgress(object sender, EventArgs e)
 {
     if (sender is GHC)
     {
         GHC classifier = sender as GHC;
         Console.WriteLine("-----------------------------------");
         Console.WriteLine("Quality: " + classifier.BestSolution.Quality);
         Console.WriteLine("-----------------------------------");
     }
     else
     {
         K2Algorithm classifier = sender as K2Algorithm;
         Console.WriteLine("-----------------------------------");
         Console.WriteLine("Quality: " + classifier.BestSolution.Quality);
         Console.WriteLine("-----------------------------------");
     }
 }