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"); }
public double CalculateMeasure(DataMining.Model.IClassifier classifier, Data.Dataset dataset) { Example example = null; double[] errors = new double[dataset.Size]; for (int i = 0; i < dataset.Size; i++) { example = dataset[i]; int actual = example.Label; Prediction prediction = classifier.Classify(example); int predicted = prediction.Label; double probability = prediction.Probabilities[prediction.Label]; errors[i] = Math.Abs(1 - prediction.Probabilities[actual]); } Array.Sort(errors); double MedAE = errors[errors.Length / 2]; return(MedAE); }
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()); }
public double CalculateMeasure(DataMining.Model.IClassifier classifier, Data.Dataset dataset) { double MAE = 0; Example example = null; for (int i = 0; i < dataset.Size; i++) { example = dataset[i]; int actual = example.Label; Prediction prediction = classifier.Classify(example); int predicted = prediction.Label; double probability = prediction.Probabilities[prediction.Label]; MAE += Math.Abs(1 - prediction.Probabilities[actual]); } MAE = MAE / dataset.Size; return(MAE); }
public double CalculateMeasure(DataMining.Model.IClassifier classifier, Data.Dataset dataset) { double QLE = 0; Example example = null; for (int i = 0; i < dataset.Size; i++) { example = dataset[i]; int actual = example.Label; Prediction prediction = classifier.Classify(example); int predicted = prediction.Label; double probability = prediction.Probabilities[prediction.Label]; QLE += Math.Log(1 + Math.Exp(-probability)); } QLE = QLE / dataset.Size; return(QLE); }
public double CalculateMeasure(DataMining.Model.IClassifier classifier, Data.Dataset dataset) { double MSE = 0; Instance instance = null; for (int i = 0; i < dataset.Size; i++) { instance = dataset[i]; int actual = instance.Label; Prediction prediction = classifier.Classify(instance); int predicted = prediction.Label; double probability = prediction.Probabilities[prediction.Label]; MSE += Math.Pow(1 - prediction.Probabilities[actual], 2); } MSE = Math.Sqrt(MSE) / dataset.Size; return(MSE); }
public double CalculateMeasure(DataMining.Model.IClassifier classifier, Data.Dataset dataset) { double QLF = 0; Example example = null; for (int i = 0; i < dataset.Size; i++) { example = dataset[i]; int actual = example.Label; Prediction prediction = classifier.Classify(example); int predicted = prediction.Label; double probability = prediction.Probabilities[prediction.Label]; double value = 0; for (int index = 0; index < dataset.Metadata.Target.Length; index++) { if (index == actual) { value -= 2 * probability; } else { value += Math.Pow(prediction.Probabilities[index], 2); } } QLF += (2 + value) / 3; } QLF = QLF / dataset.Size; return(QLF); }
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"); }
public double CalculateMeasure(DataMining.Model.IClassifier classifier, Data.Dataset dataset) { double BIReward = 0; double[] classProbabilities = new double[dataset.Metadata.Target.Length]; for (int i = 0; i < classProbabilities.Length; i++) { classProbabilities[i] = (double)dataset.Filter(i).Count / (double)dataset.Size; } Example example = null; for (int i = 0; i < dataset.Size; i++) { example = dataset[i]; int actual = example.Label; Prediction prediction = classifier.Classify(example); int predicted = prediction.Label; double probability = prediction.Probabilities[prediction.Label]; if (predicted == actual) { BIReward += Math.Log(probability / classProbabilities[actual]); } else { BIReward += Math.Log((1 - probability) / (1 - classProbabilities[actual])); } } BIReward = (BIReward / dataset.Size) + 0.5; return(BIReward); }
public static double TestClassifier(DataMining.Model.IClassifier classifier, Dataset testingSet, DataMining.ClassificationMeasures.IClassificationQualityMeasure qualityTester) { return(qualityTester.CalculateMeasure(DataMining.ClassificationMeasures.ConfusionMatrix.GetConfusionMatrixes(classifier, testingSet))); }
public double CalculateMeasure(DataMining.Model.IClassifier classifier, Data.Dataset dataset) { return(this.CalculateMeasure(ConfusionMatrix.ComputeConfusionMatrixes(classifier, dataset))); }