public void ClassificationGradientBoostLearner_LearnWithEarlyStopping_ToFewIterations() { var(observations, targets) = DataSetUtilities.LoadGlassDataSet(); var splitter = new StratifiedTrainingTestIndexSplitter <double>(0.6, 1234); var split = splitter.SplitSet(observations, targets); var sut = new ClassificationBinomialGradientBoostLearner(10, 0.01, 9, 1, 1e-6, .5, 1); var evaluator = new TotalErrorClassificationMetric <double>(); var model = sut.LearnWithEarlyStopping(split.TrainingSet.Observations, split.TrainingSet.Targets, split.TestSet.Observations, split.TestSet.Targets, evaluator, 10); }
public void ClassificationGradientBoostLearner_LearnWithEarlyStopping_ToFewIterations() { var parser = new CsvParser(() => new StringReader(Resources.Glass)); var observations = parser.EnumerateRows(r => r != "Target").ToF64Matrix(); var targets = parser.EnumerateRows("Target").ToF64Vector(); var splitter = new StratifiedTrainingTestIndexSplitter <double>(0.6, 1234); var split = splitter.SplitSet(observations, targets); var sut = new ClassificationBinomialGradientBoostLearner(10, 0.01, 9, 1, 1e-6, .5, 1); var evaluator = new TotalErrorClassificationMetric <double>(); var model = sut.LearnWithEarlyStopping(split.TrainingSet.Observations, split.TrainingSet.Targets, split.TestSet.Observations, split.TestSet.Targets, evaluator, 10); }
public void ClassificationGradientBoostLearner_LearnWithEarlyStopping() { var(observations, targets) = DataSetUtilities.LoadGlassDataSet(); var splitter = new StratifiedTrainingTestIndexSplitter <double>(0.6, 1234); var split = splitter.SplitSet(observations, targets); var sut = new ClassificationBinomialGradientBoostLearner(100, 0.01, 9, 1, 1e-6, .5, 0, false); var evaluator = new TotalErrorClassificationMetric <double>(); var model = sut.LearnWithEarlyStopping(split.TrainingSet.Observations, split.TrainingSet.Targets, split.TestSet.Observations, split.TestSet.Targets, evaluator, 10); var predictions = model.Predict(split.TestSet.Observations); var actual = evaluator.Error(split.TestSet.Targets, predictions); Assert.AreEqual(0.16279069767441862, actual, 0.000001); Assert.AreEqual(90, model.Trees.First().ToArray().Length); }
public void ClassificationGradientBoostLearner_LearnWithEarlyStopping() { var parser = new CsvParser(() => new StringReader(Resources.Glass)); var observations = parser.EnumerateRows(r => r != "Target").ToF64Matrix(); var targets = parser.EnumerateRows("Target").ToF64Vector(); var splitter = new StratifiedTrainingTestIndexSplitter <double>(0.6, 1234); var split = splitter.SplitSet(observations, targets); var sut = new ClassificationBinomialGradientBoostLearner(100, 0.01, 9, 1, 1e-6, .5, 0, false); var evaluator = new TotalErrorClassificationMetric <double>(); var model = sut.LearnWithEarlyStopping(split.TrainingSet.Observations, split.TrainingSet.Targets, split.TestSet.Observations, split.TestSet.Targets, evaluator, 10); var predictions = model.Predict(split.TestSet.Observations); var actual = evaluator.Error(split.TestSet.Targets, predictions); Assert.AreEqual(0.16279069767441862, actual, 0.000001); Assert.AreEqual(90, model.Trees.First().ToArray().Length); }