public static BayesianNetworkClassifier CreateABCMinerPlusClassifier(int seed, int iterations, int colonySize, int convergence, int maxParents, Dataset trainingSet, DataMining.ClassificationMeasures.IClassificationQualityMeasure measure, bool performLocalSearch, bool fireEvents, out BayesianNetworkClassifier abcBNClassifier) { DataMining.Utilities.RandomUtility.Initialize(seed); VariableTypeAssigmentInvalidator invalidator1 = new VariableTypeAssigmentInvalidator(); BayesianClassificationQualityEvaluator evaluator = new BayesianClassificationQualityEvaluator(measure); VariableTypeAssignmentLocalSearch localSearch1 = new VariableTypeAssignmentLocalSearch(evaluator); DefaultHeuristicCalculator <VariableTypeAssignment> calculator1 = new DefaultHeuristicCalculator <VariableTypeAssignment>(); Problem <VariableTypeAssignment> problem1 = new Problem <VariableTypeAssignment>(invalidator1, calculator1, evaluator, localSearch1); CyclicRelationInvalidator invalidator2 = new CyclicRelationInvalidator(); BackwardRemovalLocalSearch localSearch2 = new BackwardRemovalLocalSearch(evaluator); CMICalculator calculator = new CMICalculator(); Problem <Edge> problem2 = new Problem <Edge>(invalidator2, calculator, evaluator, localSearch2); ABCMinerPlus abcMinerPlus = new ABCMinerPlus(iterations, colonySize, convergence, problem2, problem1, maxParents, trainingSet, performLocalSearch); if (fireEvents) { abcMinerPlus.ABCAlgorithm.OnPostAntSolutionContruction += new EventHandler(abclassifier_OnPostAntSolutionContruction); abcMinerPlus.ABCAlgorithm.OnPostColonyIteration += new EventHandler(abclassifier_OnPostColonyIteration); abcMinerPlus.ABCMinerAlgorithm.OnPostAntSolutionContruction += new EventHandler(abclassifier_OnPostAntSolutionContruction); abcMinerPlus.ABCMinerAlgorithm.OnPostColonyIteration += new EventHandler(abclassifier_OnPostColonyIteration); abcMinerPlus.OnVariableTypeAssignmentCompleted += new EventHandler(abcMinerPlus_OnVariableTypeAssignmentCompleted); } BayesianNetworks.Model.BayesianNetworkClassifier bnclassifier = abcMinerPlus.CreateClassifier() as BayesianNetworkClassifier; abcBNClassifier = abcBNClassfier; return(bnclassifier); }
public static BayesianNetworkClassifier CreateABCClassifier(int seed, int iterations, int colonySize, int convergence, Dataset trainingSet, DataMining.ClassificationMeasures.IClassificationQualityMeasure measure, bool performLocalSearch, bool fireEvents) { DataMining.Utilities.RandomUtility.Initialize(seed); VariableTypeAssigmentInvalidator invalidator = new VariableTypeAssigmentInvalidator(); BayesianClassificationQualityEvaluator evaluator = new BayesianClassificationQualityEvaluator(measure); VariableTypeAssignmentLocalSearch localSearch = new VariableTypeAssignmentLocalSearch(evaluator); DefaultHeuristicCalculator <VariableTypeAssignment> calculator = new DefaultHeuristicCalculator <VariableTypeAssignment>(); Problem <VariableTypeAssignment> problem = new Problem <VariableTypeAssignment>(invalidator, calculator, evaluator, localSearch); ABC abc = new ABC(iterations, colonySize, convergence, problem, trainingSet, performLocalSearch); if (fireEvents) { abc.OnPostAntSolutionContruction += new EventHandler(abclassifier_OnPostAntSolutionContruction); abc.OnPostColonyIteration += new EventHandler(abclassifier_OnPostColonyIteration); } BayesianNetworks.Model.BayesianNetworkClassifier bnclassifier = abc.CreateClassifier() as BayesianNetworkClassifier; return(bnclassifier); }