private void RandomForest(List <Tuple <double[], double> > data)
        {
            Splitter splitter = new ShannonEntropySplitter();
            RandomForestAlgorithm randomForestAlgorithm = new BoostingAlgorithmus();

            foreach (var item in netMLObject.Options)
            {
                if (item == "shannonentropysplitter")
                {
                    splitter = new ShannonEntropySplitter();
                }
                else if (item == "giniindexsplitter")
                {
                    splitter = new GiniImpuritySplitter();
                }
                else if (item == "bagging")
                {
                    randomForestAlgorithm = new BaggingAlgorithmus(10);
                }
                else if (item == "boosting")
                {
                    randomForestAlgorithm = new BoostingAlgorithmus();
                }
            }
            classification = new RandomForestClassifier(data, splitter, randomForestAlgorithm);
        }
Esempio n. 2
0
        public void AnimalBoostingTrainAndClassify8020Test()
        {
            DataSetLoader dataSetLoader = new DataSetLoader();

            Console.WriteLine(" Reading DataSet.. ");
            var animals = dataSetLoader.SelectTrainingAnimals(90);

            for (double i = 0; i < 1; i = i + 1)
            {
                BoostingAlgorithmus boostingAlgorithmus =
                    new BoostingAlgorithmus(10);
                boostingAlgorithmus.Train(animals, new ShannonEntropySplitter());
                var animalsTest = dataSetLoader.SelectSelectingAnimals(10);
                var trueCounter = 0;
                var counter     = 0;
                foreach (var item in animalsTest)
                {
                    var outputValue = boostingAlgorithmus.Classify(item.Item1);
                    if (outputValue == item.Item2)
                    {
                        trueCounter++;
                    }
                    Debug.WriteLine(string.Format("Value {0} - Predicted {1} = {2}",
                                                  item.Item2, outputValue, (outputValue == item.Item2) ? "true" : "false"));
                    counter++;
                }
                Debug.WriteLine(string.Format(" i = {0} Data {1} - True {2} Verhältnis: {3}", i,
                                              counter.ToString(), trueCounter.ToString(), (Convert.ToDouble(trueCounter) / Convert.ToDouble(counter)).ToString()));
            }
        }