public void MeanAbsolutErrorRegressionMetric_Error_Zero_Error() { var targets = new double[] { 0.0, 0.0 }; var predictions = new double[] { 0.0, 0.0 }; var sut = new MeanAbsolutErrorRegressionMetric(); var actual = sut.Error(targets, predictions); Assert.AreEqual(0.0, actual); }
public void MeanAbsolutErrorRegressionMetric_Error() { var targets = new double[] { 1.0, 2.3, 3.1, 4.4, 5.8 }; var predictions = new double[] { 1.0, 2.0, 3.0, 4.0, 5.0 }; var sut = new MeanAbsolutErrorRegressionMetric(); var actual = sut.Error(targets, predictions); Assert.AreEqual(0.32, actual, 0.00001); }
public void RegressionAdaBoostModel_Load() { var(observations, targets) = DataSetUtilities.LoadAptitudeDataSet(); var reader = new StringReader(RegressionDecisionTreeModelString); var sut = RegressionAdaBoostModel.Load(() => reader); var predictions = sut.Predict(observations); var evaluator = new MeanAbsolutErrorRegressionMetric(); var error = evaluator.Error(targets, predictions); Assert.AreEqual(0.22527472527472531, error, 0.0000001); }
public void RegressionAdaBoostLearner_Learn_Glass() { var(observations, targets) = DataSetUtilities.LoadGlassDataSet(); var sut = new RegressionAdaBoostLearner(10); var model = sut.Learn(observations, targets); var predictions = model.Predict(observations); var evaluator = new MeanAbsolutErrorRegressionMetric(); var actual = evaluator.Error(targets, predictions); Assert.AreEqual(0.54723570404775324, actual); }
public void RegressionAdaBoostModel_Precit_Multiple() { var(observations, targets) = DataSetUtilities.LoadAptitudeDataSet(); var learner = new RegressionAdaBoostLearner(10); var sut = learner.Learn(observations, targets); var predictions = sut.Predict(observations); var evaluator = new MeanAbsolutErrorRegressionMetric(); var error = evaluator.Error(targets, predictions); Assert.AreEqual(0.14185814185814186, error, 0.0000001); }
public void RegressionGradientBoostModel_Precit_Multiple() { var(observations, targets) = DataSetUtilities.LoadAptitudeDataSet(); var learner = new RegressionGradientBoostLearner(100, 0.1, 3, 1, 1e-6, 1.0, 0, new GradientBoostSquaredLoss(), false); var sut = learner.Learn(observations, targets); var predictions = sut.Predict(observations); var evaluator = new MeanAbsolutErrorRegressionMetric(); var error = evaluator.Error(targets, predictions); Assert.AreEqual(0.045093177702025665, error, 0.0000001); }
public void RegressionAdaBoostLearner_Learn_AptitudeData_LinearLoss() { var(observations, targets) = DataSetUtilities.LoadAptitudeDataSet(); var sut = new RegressionAdaBoostLearner(10); var model = sut.Learn(observations, targets); var predictions = model.Predict(observations); var evaluator = new MeanAbsolutErrorRegressionMetric(); var actual = evaluator.Error(targets, predictions); Assert.AreEqual(0.14185814185814186, actual); }
public void RegressionAdaBoostLearner_Learn_AptitudeData_ExponentialLoss() { var(observations, targets) = DataSetUtilities.LoadAptitudeDataSet(); var sut = new RegressionAdaBoostLearner(10, 1, 0, AdaBoostRegressionLoss.Exponential); var model = sut.Learn(observations, targets); var predictions = model.Predict(observations); var evaluator = new MeanAbsolutErrorRegressionMetric(); var actual = evaluator.Error(targets, predictions); Assert.AreEqual(0.10370879120879124, actual); }
public void RegressionGradientBoostModel_Load() { var(observations, targets) = DataSetUtilities.LoadAptitudeDataSet(); var reader = new StringReader(RegressionGradientBoostModelString); var sut = RegressionGradientBoostModel.Load(() => reader); var predictions = sut.Predict(observations); var evaluator = new MeanAbsolutErrorRegressionMetric(); var error = evaluator.Error(targets, predictions); Assert.AreEqual(0.42445562130177528, error, 0.0000001); }
public void RegressionGradientBoostModel_Load() { var parser = new CsvParser(() => new StringReader(Resources.AptitudeData)); var observations = parser.EnumerateRows(v => v != "Pass").ToF64Matrix(); var targets = parser.EnumerateRows("Pass").ToF64Vector(); var reader = new StringReader(RegressionGradientBoostModelString); var sut = RegressionGradientBoostModel.Load(() => reader); var predictions = sut.Predict(observations); var evaluator = new MeanAbsolutErrorRegressionMetric(); var error = evaluator.Error(targets, predictions); Assert.AreEqual(0.42445562130177528, error, 0.0000001); }
public void RegressionAdaBoostLearner_Learn_Glass() { var parser = new CsvParser(() => new StringReader(Resources.Glass)); var observations = parser.EnumerateRows(v => v != "Target").ToF64Matrix(); var targets = parser.EnumerateRows("Target").ToF64Vector(); var sut = new RegressionAdaBoostLearner(10); var model = sut.Learn(observations, targets); var predictions = model.Predict(observations); var evaluator = new MeanAbsolutErrorRegressionMetric(); var actual = evaluator.Error(targets, predictions); Assert.AreEqual(0.54723570404775324, actual); }
public void RegressionAdaBoostLearner_Learn_AptitudeData_ExponentialLoss() { var parser = new CsvParser(() => new StringReader(Resources.AptitudeData)); var observations = parser.EnumerateRows(v => v != "Pass").ToF64Matrix(); var targets = parser.EnumerateRows("Pass").ToF64Vector(); var sut = new RegressionAdaBoostLearner(10, 1, 0, AdaBoostRegressionLoss.Exponential); var model = sut.Learn(observations, targets); var predictions = model.Predict(observations); var evaluator = new MeanAbsolutErrorRegressionMetric(); var actual = evaluator.Error(targets, predictions); Assert.AreEqual(0.10370879120879124, actual); }
public void RegressionAdaBoostModel_Precit_Multiple() { var parser = new CsvParser(() => new StringReader(Resources.AptitudeData)); var observations = parser.EnumerateRows(v => v != "Pass").ToF64Matrix(); var targets = parser.EnumerateRows("Pass").ToF64Vector(); var rows = targets.Length; var learner = new RegressionAdaBoostLearner(10); var sut = learner.Learn(observations, targets); var predictions = sut.Predict(observations); var evaluator = new MeanAbsolutErrorRegressionMetric(); var error = evaluator.Error(targets, predictions); Assert.AreEqual(0.14185814185814186, error, 0.0000001); }
public void RegressionGradientBoostModel_Precit_Multiple() { var parser = new CsvParser(() => new StringReader(Resources.AptitudeData)); var observations = parser.EnumerateRows(v => v != "Pass").ToF64Matrix(); var targets = parser.EnumerateRows("Pass").ToF64Vector(); var rows = targets.Length; var learner = new RegressionGradientBoostLearner(100, 0.1, 3, 1, 1e-6, 1.0, 0, new GradientBoostSquaredLoss(), false); var sut = learner.Learn(observations, targets); var predictions = sut.Predict(observations); var evaluator = new MeanAbsolutErrorRegressionMetric(); var error = evaluator.Error(targets, predictions); Assert.AreEqual(0.045093177702025665, error, 0.0000001); }
public void RegressionGradientBoostModel_Predict_Single() { var(observations, targets) = DataSetUtilities.LoadAptitudeDataSet(); var learner = new RegressionGradientBoostLearner(100, 0.1, 3, 1, 1e-6, 1.0, 0, new GradientBoostSquaredLoss(), false); var sut = learner.Learn(observations, targets); var rows = targets.Length; var predictions = new double[rows]; for (int i = 0; i < rows; i++) { predictions[i] = sut.Predict(observations.Row(i)); } var evaluator = new MeanAbsolutErrorRegressionMetric(); var error = evaluator.Error(targets, predictions); Assert.AreEqual(0.045093177702025665, error, 0.0000001); }
public void RegressionAdaBoostModel_Predict_Single() { var(observations, targets) = DataSetUtilities.LoadAptitudeDataSet(); var rows = targets.Length; var learner = new RegressionAdaBoostLearner(10); var sut = learner.Learn(observations, targets); var predictions = new double[rows]; for (int i = 0; i < rows; i++) { predictions[i] = sut.Predict(observations.Row(i)); } var evaluator = new MeanAbsolutErrorRegressionMetric(); var error = evaluator.Error(targets, predictions); Assert.AreEqual(0.14185814185814186, error, 0.0000001); }
public void RegressionAbsoluteLossGradientBoostLearner_Learn_Indexed() { var(observations, targets) = DataSetUtilities.LoadGlassDataSet(); var sut = new RegressionAbsoluteLossGradientBoostLearner(50, 0.1, 3, 1, 1e-6, 1.0, 0, false); var indices = Enumerable.Range(0, targets.Length).ToArray(); indices.Shuffle(new Random(42)); indices = indices.Take((int)(targets.Length * 0.7)) .ToArray(); var model = sut.Learn(observations, targets, indices); var predictions = model.Predict(observations); var indexedPredictions = predictions.GetIndices(indices); var indexedTargets = targets.GetIndices(indices); var evaluator = new MeanAbsolutErrorRegressionMetric(); var actual = evaluator.Error(indexedTargets, indexedPredictions); Assert.AreEqual(0.41246374405350877, actual, 0.0001); }
public void RegressionAdaBoostLearner_Learn_Glass_Indexed() { var(observations, targets) = DataSetUtilities.LoadGlassDataSet(); var sut = new RegressionAdaBoostLearner(10, 1, 5); var indices = Enumerable.Range(0, targets.Length).ToArray(); indices.Shuffle(new Random(42)); indices = indices.Take((int)(targets.Length * 0.7)) .ToArray(); var model = sut.Learn(observations, targets, indices); var predictions = model.Predict(observations); var indexedPredictions = predictions.GetIndices(indices); var indexedTargets = targets.GetIndices(indices); var evaluator = new MeanAbsolutErrorRegressionMetric(); var actual = evaluator.Error(indexedTargets, indexedPredictions); Assert.AreEqual(0.22181054803405248, actual); }
public void RegressionAbsoluteLossGradientBoostLearner_Learn_Indexed() { var parser = new CsvParser(() => new StringReader(Resources.Glass)); var observations = parser.EnumerateRows(v => v != "Target").ToF64Matrix(); var targets = parser.EnumerateRows("Target").ToF64Vector(); var sut = new RegressionAbsoluteLossGradientBoostLearner(50, 0.1, 3, 1, 1e-6, 1.0, 0, false); var indices = Enumerable.Range(0, targets.Length).ToArray(); indices.Shuffle(new Random(42)); indices = indices.Take((int)(targets.Length * 0.7)) .ToArray(); var model = sut.Learn(observations, targets, indices); var predictions = model.Predict(observations); var indexedPredictions = predictions.GetIndices(indices); var indexedTargets = targets.GetIndices(indices); var evaluator = new MeanAbsolutErrorRegressionMetric(); var actual = evaluator.Error(indexedTargets, indexedPredictions); Assert.AreEqual(0.41246374405350877, actual, 0.0001); }
public void RegressionAdaBoostLearner_Learn_Glass_Indexed() { var parser = new CsvParser(() => new StringReader(Resources.Glass)); var observations = parser.EnumerateRows(v => v != "Target").ToF64Matrix(); var targets = parser.EnumerateRows("Target").ToF64Vector(); var sut = new RegressionAdaBoostLearner(10, 1, 5); var indices = Enumerable.Range(0, targets.Length).ToArray(); indices.Shuffle(new Random(42)); indices = indices.Take((int)(targets.Length * 0.7)) .ToArray(); var model = sut.Learn(observations, targets, indices); var predictions = model.Predict(observations); var indexedPredictions = predictions.GetIndices(indices); var indexedTargets = targets.GetIndices(indices); var evaluator = new MeanAbsolutErrorRegressionMetric(); var actual = evaluator.Error(indexedTargets, indexedPredictions); Assert.AreEqual(0.22181054803405248, actual); }