示例#1
0
文件: Program.cs 项目: skn123/iFourmi
        public static void TestKmeanClusteringBMN()
        {
            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;

            int k = 8;

            for (int i = 0; i < 10; 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();
                DataMining.Algorithms.IClusteringAlgorithm     kmeans = new DataMining.Algorithms.KMeans(trainingSet, k, similarityMeasure, 100, true);
                DataMining.Model.IClassifier cBMNClassifier           = SingleTest.CreateClusteringBMNClassifier(seed, k, trainingSet, similarityMeasure, accuracy, kmeans, naive, false);
                double quality = SingleTest.TestClassifier(cBMNClassifier, testingSet, accuracy);
                Console.WriteLine("Quality: " + quality.ToString());
                avgQualiy += quality;
            }

            Console.WriteLine(avgQualiy / 10);
            Console.WriteLine("End");
        }
示例#2
0
文件: Program.cs 项目: skn123/iFourmi
        public static void TestEnsembleH()
        {
            string folderPath = @"C:\0 - Khalid\Academics\Datasets\ageing\test";

            //string folderPath = @"C:\0 - Khalid\Academics\Datasets\ageing";

            iFourmi.DataMining.Algorithms.IClassificationAlgorithm algorithm = new NaiveBayesAlgorithm();
            iFourmi.DataMining.ClassificationMeasures.IClassificationQualityMeasure evaluator = new iFourmi.DataMining.ClassificationMeasures.AccuracyMeasure();

            List <DataMining.Data.Dataset> dataRepresentations = new List <Dataset>();

            foreach (string filePath in System.IO.Directory.GetFiles(folderPath))
            {
                dataRepresentations.Add(ArffHelper.LoadHierarchicalDatasetFromTxt(filePath, true));
            }

            Console.WriteLine("Begin");
            iFourmi.DataMining.EnsembleStrategy.IEnsembleClassificationStrategy ensembleStrategy = new iFourmi.DataMining.EnsembleStrategy.EnsembleBestClassificationStrategy();
            iFourmi.DataMining.Model.Hierarchical.IHierarchicalClassifier       hClassifier      = SingleTest.CreateLocalPerNodeHierarchicalClassifier(algorithm, dataRepresentations, ensembleStrategy, evaluator, true, true);

            double quality = SingleTest.TestClassifier(hClassifier, dataRepresentations, evaluator);

            quality = Math.Round(quality * 100, 2);
            Console.WriteLine("Quality: " + quality.ToString());
            Console.WriteLine("End");
        }
示例#3
0
        public static BayesianNetworkClassifier CreateNaiveBayesianClassifier(Dataset trainingSet)
        {
            NaiveBayesAlgorithm nb = new NaiveBayesAlgorithm();

            nb.Dataset = trainingSet;
            BayesianNetworkClassifier bnClassifier = nb.CreateClassifier() as BayesianNetworkClassifier;

            return(bnClassifier);
        }
示例#4
0
文件: Program.cs 项目: skn123/iFourmi
        public static void TestANTClustBMN_IB()
        {
            int seed = (int)DateTime.Now.Ticks;

            Console.WriteLine("Start");

            string  datasetFile = folderPath + "\\" + datasetName + ".arff";
            Dataset trainingSet = ArffHelper.LoadDatasetFromArff(datasetFile);
            Dataset testingSet  = ArffHelper.LoadDatasetFromArff(datasetFile);

            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();
            DataMining.Model.IClassifier cBMNClassifier          = SingleTest.CreateAntClustBMNClassifier_IB(seed, trainingSet, 1, 1, 10, 3, similarityMeasure, accuracy, naive, true);
            double quality = SingleTest.TestClassifier(cBMNClassifier, testingSet, accuracy);

            Console.WriteLine("Quality: " + quality.ToString());
        }
示例#5
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");
        }