diff --git a/src/SharpLearning.Benchmarks/Benchmarks.ClassificationLearners.cs b/src/SharpLearning.Benchmarks/Benchmarks.ClassificationLearners.cs index 4f6c883f..a433c55c 100644 --- a/src/SharpLearning.Benchmarks/Benchmarks.ClassificationLearners.cs +++ b/src/SharpLearning.Benchmarks/Benchmarks.ClassificationLearners.cs @@ -2,6 +2,7 @@ using SharpLearning.AdaBoost.Learners; using SharpLearning.Containers.Matrices; using SharpLearning.DecisionTrees.Learners; +using SharpLearning.GradientBoost.Learners; using SharpLearning.RandomForest.Learners; namespace SharpLearning.Benchmarks; @@ -23,6 +24,7 @@ public class ClassificationLearners readonly ClassificationAdaBoostLearner m_classificationAdaBoostLearner = new(); readonly ClassificationRandomForestLearner m_classificationRandomForestLearner = new(); readonly ClassificationExtremelyRandomizedTreesLearner m_classificationExtremelyRandomizedTreesLearner = new(); + readonly ClassificationBinomialGradientBoostLearner m_classificationBinomialGradientBoostLearner = new(); [GlobalSetup] public void GlobalSetup() @@ -57,5 +59,11 @@ public void ClassificationExtremelyRandomizedTreesLearner_Learn() { m_classificationExtremelyRandomizedTreesLearner.Learn(m_features, m_targets); } + + [Benchmark] + public void ClassificationBinomialGradientBoostLearner_Learn() + { + m_classificationBinomialGradientBoostLearner.Learn(m_features, m_targets); + } } } diff --git a/src/SharpLearning.Benchmarks/Benchmarks.Regression.cs b/src/SharpLearning.Benchmarks/Benchmarks.Regression.cs deleted file mode 100644 index d8606575..00000000 --- a/src/SharpLearning.Benchmarks/Benchmarks.Regression.cs +++ /dev/null @@ -1,27 +0,0 @@ -using SharpLearning.DecisionTrees.Learners; -using SharpLearning.AdaBoost.Learners; -using SharpLearning.RandomForest.Learners; -using SharpLearning.GradientBoost.Learners; - -namespace SharpLearning.Benchmarks; - -public static partial class Benchmarks -{ - public static partial class Regression - { - public class DecisionTreeLearner() - : RegressionLearnerBenchmark(() => new RegressionDecisionTreeLearner()); - - public class AdaboostLearner() - : RegressionLearnerBenchmark(() => new RegressionAdaBoostLearner()); - - public class RandomForestLearner() - : RegressionLearnerBenchmark(() => new RegressionRandomForestLearner()); - - public class ExtremelyRandomizedTreeLearner() - : RegressionLearnerBenchmark(() => new RegressionExtremelyRandomizedTreesLearner()); - - public class SquareLossGradientBoostLearner() - : RegressionLearnerBenchmark(() => new RegressionSquareLossGradientBoostLearner()); - } -} diff --git a/src/SharpLearning.Benchmarks/RegressionLearnerBenchmark.cs b/src/SharpLearning.Benchmarks/RegressionLearnerBenchmark.cs deleted file mode 100644 index e50474ab..00000000 --- a/src/SharpLearning.Benchmarks/RegressionLearnerBenchmark.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System; -using BenchmarkDotNet.Attributes; -using SharpLearning.Common.Interfaces; -using SharpLearning.Containers.Matrices; - -namespace SharpLearning.Benchmarks; - -[MemoryDiagnoser] -public abstract class RegressionLearnerBenchmark( - Func> createLearner) -{ - readonly Func> m_createLearner = createLearner ?? throw new ArgumentNullException(nameof(createLearner)); - - const int Rows = 1000; - const int Cols = 10; - F64Matrix m_features; - double[] m_targets; - - ILearner m_learner; - - [GlobalSetup] - public void GlobalSetup() - { - var seed = 42; - m_targets = DataGenerator.GenerateDoubles(Rows, 1, seed); - var features = DataGenerator.GenerateDoubles(Rows, Cols, seed); - m_features = new F64Matrix(features, Rows, Cols); - - // Use default parameters. - m_learner = m_createLearner(); - } - - [Benchmark] - public void Learn() - { - m_learner.Learn(m_features, m_targets); - } -}