public Prediction Classify(DataMining.Data.Example example) { example = example.Clone() as DataMining.Data.Example; example.Label = -1; double[] classProbabilities = new double[this._metadata.Target.Values.Length]; int resultIndex = 0; for (int classIndex = 0; classIndex < classProbabilities.Length; classIndex++) { double probability = this.GetProbability(example, classIndex); classProbabilities[classIndex] = probability; if (probability > classProbabilities[resultIndex]) { resultIndex = classIndex; } } double sum = classProbabilities.Sum(); for (int i = 0; i < classProbabilities.Length; i++) { classProbabilities[i] /= sum; } return(new Prediction(resultIndex, classProbabilities[resultIndex])); }
public Prediction Classify(DataMining.Data.Example example) { example = example.Clone() as DataMining.Data.Example; example.Label = -1; this._classProbabilities = new double[this._metadata.Target.Values.Length]; int resultIndex = 0; for (int classIndex = 0; classIndex < this._metadata.Target.Values.Length; classIndex++) { BayesianNetwork bayesianNetwork = this._bayesianNetworks[classIndex]; double probability = this._metadata.Target.ValueCounts[classIndex] / (double)this._metadata.Size; probability *= bayesianNetwork.GetProbability(example); this._classProbabilities[classIndex] = probability; if (probability > this._classProbabilities[resultIndex]) { resultIndex = classIndex; } } double sum = this._classProbabilities.Sum(); for (int i = 0; i < this._classProbabilities.Length; i++) { this._classProbabilities[i] /= sum; } return(new Prediction(resultIndex, this._classProbabilities[resultIndex])); }
public Prediction Classify(DataMining.Data.Example example) { example = example.Clone() as DataMining.Data.Example; example.Label = -1; int clusterIndex = this._clusteringSolution.GetExampleNativeCluster(example); Prediction prediction = this._bayesianNetworkClassfiers[clusterIndex].Classify(example); return(prediction); }