public IBClassificationQualityEvaluator(AbstractLazyClassifier classifer, IClassificationMeasure measure) : base(0, 1) { this._IBClassifier = classifer; this._measure = measure; //this.LoadSimilarityCache(); }
public DataMining.Model.IClassifier CreateClassifier() { this.Work(); this._problem.SolutionQualityEvaluator.EvaluateSolutionQuality(this.GlobalBest); AbstractLazyClassifier clasifier = ((IBClassificationQualityEvaluator)this._problem.SolutionQualityEvaluator).Classifier; return(clasifier); }
public DataMining.Model.IClassifier CreateClassifier() { this.Initialize(); this.Evolve(); this._solutionQualityEvaluator.EvaluateSolutionQuality(this.GlobalBest); AbstractLazyClassifier clasifier = ((IBClassificationQualityEvaluator)this._solutionQualityEvaluator).Classifier; return(clasifier); }
public DataMining.Model.IClassifier CreateClassifier() { this.Work(); double[] weights = this.GlobalBest.ToList().ToArray(); AbstractLazyClassifier clasifier = ((IBClassificationQualityEvaluator)this._problem.SolutionQualityEvaluator).Classifier; clasifier.Weights = weights; return(clasifier); }
public IBLHeuristicsCalculator(Dataset dataset, AbstractLazyClassifier lazyClassifier) { this._dataset = dataset; this._lazyClassifier = lazyClassifier; this._probabilities = new Dictionary <int, double>(); for (int i = 0; i < this._dataset.Size; i++) { Prediction predicition = this._lazyClassifier.Classify(this._dataset[i]); this._probabilities.Add(i, predicition.Probabilities[predicition.Label]); } }
private static void SaveWeights(Dataset dataset, AbstractLazyClassifier lazyClassifier) { System.IO.StreamWriter writer = new System.IO.StreamWriter("results\\" + dataset.Metadata.DatasetName + ".txt", true); string header = "att\\class,"; foreach (string classlabel in dataset.Metadata.Target.Values) { header += classlabel + ","; } header = header.Substring(0, header.Length - 1); writer.WriteLine(header); for (int classIndex = 0; classIndex < dataset.Metadata.Target.Values.Length; classIndex++) { double sum = 0; for (int attributeIndex = 0; attributeIndex < dataset.Metadata.Attributes.Length; attributeIndex++) { sum += lazyClassifier.Weights[classIndex][attributeIndex]; } for (int attributeIndex = 0; attributeIndex < dataset.Metadata.Attributes.Length; attributeIndex++) { lazyClassifier.Weights[classIndex][attributeIndex] /= sum; } } for (int attributeIndex = 0; attributeIndex < dataset.Metadata.Attributes.Length; attributeIndex++) { string line = dataset.Metadata.Attributes[attributeIndex].Name + ","; double[] weights = new double[dataset.Metadata.Target.Values.Length]; for (int classIndex = 0; classIndex < dataset.Metadata.Target.Values.Length; classIndex++) { weights[classIndex] = Math.Round((lazyClassifier.Weights[classIndex][attributeIndex]) * 100, 1); } line += string.Join(",", weights); writer.WriteLine(line); } writer.Flush(); writer.Close(); }
public DataMining.Model.Ensembles.EnsembleClassifier CreateEnsembleClassifier() { this.Work(); List <DataMining.Model.ClassifierInfo> ensemble = new List <DataMining.Model.ClassifierInfo>(); for (int i = 0; i < this._archiveSize; i++) { Solution <double> solution = Solution <double> .FromList(this._solutionArchive[i].ToList()); this._problem.SolutionQualityEvaluator.EvaluateSolutionQuality(solution); AbstractLazyClassifier clasifier = ((IBClassificationQualityEvaluator)this._problem.SolutionQualityEvaluator).Classifier; DataMining.Model.ClassifierInfo classifierInfo = new DataMining.Model.ClassifierInfo() { Desc = clasifier.Desc + "-" + i.ToString(), Classifier = clasifier, Quality = solution.Quality }; ensemble.Add(classifierInfo); } DataMining.Model.Ensembles.EnsembleClassifier ensmebleClassifier = new DataMining.Model.Ensembles.EnsembleClassifier(ensemble); return(ensmebleClassifier); }