コード例 #1
0
        public static BayesianNetworkClassifier CreateABCMinerPlusIClassifier(int seed, int iterations, int colonySize, int localColonySize, int convergence, int maxParents, Dataset trainingSet, DataMining.ClassificationMeasures.IClassificationQualityMeasure measure, bool performLocalSearch, bool fireEvents)
        {
            DataMining.Utilities.RandomUtility.Initialize(seed);

            VariableTypeAssigmentInvalidator                    invalidator1 = new VariableTypeAssigmentInvalidator();
            BayesianClassificationQualityEvaluator              evaluator    = new BayesianClassificationQualityEvaluator(measure);
            SimpleVariableTypeAssignmentLocalSearch             localSearch1 = new SimpleVariableTypeAssignmentLocalSearch(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);

            ABCMinerPlusI abcMinerPlusI = new ABCMinerPlusI(iterations, colonySize, localColonySize, convergence, problem2, problem1, maxParents, trainingSet, performLocalSearch);

            if (fireEvents)
            {
                abcMinerPlusI.ABCAlgorithm.OnPostAntSolutionContruction += new EventHandler(abclassifier_OnPostAntSolutionContruction);
                abcMinerPlusI.ABCAlgorithm.OnPostColonyIteration        += new EventHandler(abclassifier_OnPostColonyIteration);

                abcMinerPlusI.ABCMinerAlgorithm.OnPostAntSolutionContruction += new EventHandler(abclassifier_OnPostAntSolutionContruction);
                abcMinerPlusI.ABCMinerAlgorithm.OnPostColonyIteration        += new EventHandler(abclassifier_OnPostColonyIteration);
            }


            BayesianNetworks.Model.BayesianNetworkClassifier bnclassifier = abcMinerPlusI.CreateClassifier() as BayesianNetworkClassifier;

            return(bnclassifier);
        }
コード例 #2
0
        static void TestANNMiner(Dataset dataset)
        {
            IClassificationMeasure measure        = new AccuracyMeasure();
            ILearningMethod        learningMethod = new BackPropagation(0.1, 10, 0.9, false);

            int hiddenUnitCount = dataset.Metadata.Attributes.Length * dataset.Metadata.Target.Length;

            IActivationFunction activationFunction = new SigmoidActivationFunction();

            ISolutionQualityEvaluator <ConnectionDC> evaluator  = new NNClassificationQualityEvaluator(measure, learningMethod, hiddenUnitCount, activationFunction);
            IHeuristicsCalculator <ConnectionDC>     calculator = new DefaultHeuristicCalculator <ConnectionDC>();
            ILocalSearch <ConnectionDC>          localSearch    = new DefaultRemovalLocalSearch <ConnectionDC>(evaluator);
            IComponentInvalidator <ConnectionDC> invalidator    = new NNConnectorInvalidator();

            Problem <ConnectionDC> problem = new Problem <ConnectionDC>(invalidator, calculator, evaluator, localSearch);

            NeuralNetwork network_before = null;
            NeuralNetwork network_final  = SingleTest.CreateNeuralNet_ANNMiner(problem, hiddenUnitCount, true, false, dataset, ref network_before);

            double quilty_before = SingleTest.TestClassifier(network_before, dataset, measure);
            double quilty_final  = SingleTest.TestClassifier(network_final, dataset, measure);

            Console.WriteLine("ANN -" + quilty_before);
            Console.WriteLine("ANN -" + quilty_final);
        }
コード例 #3
0
        public static BayesianClusterMultinetClassifier CreateAntClustBMNClassifier_MB(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 <int>         calculator  = new DefaultHeuristicCalculator <int>();
            ClusteringMBInvalidator                  invalidator = new ClusteringMBInvalidator();
            ClusteringClassificationQualityEvaluator evaluator   = new ClusteringClassificationQualityEvaluator(classificationMeasure, algorithm);

            evaluator.Dataset = dataset;
            KMeansLocalSearch localSearch = new KMeansLocalSearch(dataset, 1, similarityMeasure, evaluator);
            Problem <int>     problem     = new Problem <int>(invalidator, calculator, evaluator, localSearch);

            AntClustBMN_MB antClustBMN = new AntClustBMN_MB(maxIterations, colonySize, convergence, problem, clustersNumber, similarityMeasure, dataset, true, algorithm, classificationMeasure);

            antClustBMN.OnPostColonyIteration += new EventHandler(antClustering_OnPostColonyIteration);
            return(antClustBMN.CreateClassifier() as BayesianClusterMultinetClassifier);
        }
コード例 #4
0
        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());
        }
コード例 #5
0
ファイル: SingleTest.cs プロジェクト: skn123/iFourmi
        public static ResultObject EvaluateRandDR_WekaClassifier(string algorithm, string trainingSetPath, string testSetPath, Dataset trainingSet, bool useAttributes, bool useInstances)
        {
            Classifier classifier = WekaNETBridge.WekaClassification.GetWekaClassifier(algorithm, trainingSetPath);

            //DefaultDRHeuristicCalculator calculator = new DefaultDRHeuristicCalculator();

            DefaultHeuristicCalculator <DRComponent> calculator = new DefaultHeuristicCalculator <DRComponent>(trainingSet);
            DRComponentInvalidator invalidator = new DRComponentInvalidator();


            WekaNETBridge.WekaClassification wekaClassification = new WekaNETBridge.WekaClassification(trainingSetPath, classifier);

            WekaClassificationQualityEvaluator evaluator = new WekaClassificationQualityEvaluator(wekaClassification, true);

            DRLocalSearch localSearch = new DRLocalSearch(evaluator);

            Problem <DRComponent> problem = new Problem <DRComponent>(invalidator, calculator, evaluator, localSearch);

            RandomDR random = new RandomDR(maxIterations, colonySize, 50, problem, useAttributes, useInstances, false, trainingSet);

            random.OnPostAntSolutionContruction += OnPostAntSolutionContruction;
            random.OnPostColonyIteration        += OnPostColonyIteration;



            WekaNETBridge.WekaClassifier wekcaClassifier = random.CreateWekaClassifier();

            double quality           = WekaNETBridge.WekaClassification.EvaluateClassifier(wekcaClassifier, testSetPath);
            double attribueReduction = random.BestAnt.Solution.FeatureCount() / (double)trainingSet.Metadata.Attributes.Length;
            double instanceReduction = random.BestAnt.Solution.InstanceCount() / (double)trainingSet.Size;

            ResultObject result = new ResultObject()
            {
                Quality = quality, AttributeReduction = attribueReduction, InstanceReduciton = instanceReduction
            };

            return(result);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
ファイル: Program.cs プロジェクト: skn123/iFourmi
        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");
        }