public void RegressionModelSelectingEnsembleLearner_Constructor_CrossValidation_Null()
        {
            var learners          = new IIndexedLearner <double> [4];
            var metric            = new MeanSquaredErrorRegressionMetric();
            var ensembleStrategy  = new MeanRegressionEnsembleStrategy();
            var ensembleSelection = new ForwardSearchRegressionEnsembleSelection(metric, ensembleStrategy, 5, 1, true);

            var sut = new RegressionModelSelectingEnsembleLearner(learners, null, ensembleStrategy, ensembleSelection);
        }
        public void RegressionModelSelectingEnsembleLearner_Constructor_Learners_Null()
        {
            var metric            = new MeanSquaredErrorRegressionMetric();
            var ensembleStrategy  = new MeanRegressionEnsembleStrategy();
            var ensembleSelection = new ForwardSearchRegressionEnsembleSelection(metric, ensembleStrategy, 5, 1, true);
            var crossValidation   = new RandomCrossValidation <double>(5);

            var sut = new RegressionModelSelectingEnsembleLearner(null, crossValidation, ensembleStrategy, ensembleSelection);
        }
예제 #3
0
        public void ForwardSearchRegressionEnsembleSelection_Constructor_Number_Of_Availible_Models_Lower_Than_Number_Of_Models_To_Select()
        {
            var sut = new ForwardSearchRegressionEnsembleSelection(new MeanSquaredErrorRegressionMetric(),
                                                                   new MeanRegressionEnsembleStrategy(), 5, 1, true);

            var observations = new F64Matrix(10, 3);
            var targets      = new double[10];

            sut.Select(observations, targets);
        }
예제 #4
0
        public void ForwardSearchRegressionEnsembleSelection_Select_Start_With_2_Models()
        {
            var sut = new ForwardSearchRegressionEnsembleSelection(new MeanSquaredErrorRegressionMetric(),
                                                                   new MeanRegressionEnsembleStrategy(), 3, 2, true);

            var random = new Random(42);

            var observations = new F64Matrix(10, 10);

            observations.Map(() => random.Next());
            var targets = Enumerable.Range(0, 10).Select(v => random.NextDouble()).ToArray();

            var actual   = sut.Select(observations, targets);
            var expected = new int[3] {
                2, 3, 2
            };

            CollectionAssert.AreEqual(expected, actual);
        }
예제 #5
0
 public void ForwardSearchRegressionEnsembleSelection_Constructor_Number_Of_Models_From_Start_Larger_Than_Number_Of_Models_To_Select()
 {
     var sut = new ForwardSearchRegressionEnsembleSelection(
         new MeanSquaredErrorRegressionMetric(),
         new MeanRegressionEnsembleStrategy(), 3, 5, true);
 }
예제 #6
0
 public void ForwardSearchRegressionEnsembleSelection_Constructor_Number_Of_Models_Too_Low()
 {
     var sut = new ForwardSearchRegressionEnsembleSelection(
         new MeanSquaredErrorRegressionMetric(),
         new MeanRegressionEnsembleStrategy(), 0, 1, true);
 }
예제 #7
0
 public void ForwardSearchRegressionEnsembleSelection_Constructor_EnsembleStratey_Null()
 {
     var sut = new ForwardSearchRegressionEnsembleSelection(
         new MeanSquaredErrorRegressionMetric(), null, 5, 1, true);
 }
예제 #8
0
 public void ForwardSearchRegressionEnsembleSelection_Constructor_Metric_Null()
 {
     var sut = new ForwardSearchRegressionEnsembleSelection(null,
                                                            new MeanRegressionEnsembleStrategy(), 5, 1, true);
 }