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); }
public void AnimalBaggingTest() { DataSetLoader dataSetLoader = new DataSetLoader(); Console.WriteLine(" Reading DataSet.. "); var animals = dataSetLoader.SelectAnimals(); for (double i = 0; i < 1; i = i + 1) { BaggingAlgorithmus baggingAlgorithmus = new BaggingAlgorithmus(20); baggingAlgorithmus.Train(animals, new ShannonEntropySplitter()); var animalsTest = dataSetLoader.SelectAnimals(); var trueCounter = 0; var counter = 0; foreach (var item in animalsTest) { var outputValue = baggingAlgorithmus.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())); } }