예제 #1
0
        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]));
        }
예제 #2
0
        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]));
        }
예제 #3
0
        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);
        }