コード例 #1
0
        public RegressionEnsembleSolution(IRegressionEnsembleModel model, IRegressionProblemData problemData)
            : base(model, new RegressionEnsembleProblemData(problemData))
        {
            trainingPartitions  = new Dictionary <IRegressionModel, IntRange>();
            testPartitions      = new Dictionary <IRegressionModel, IntRange>();
            regressionSolutions = new ItemCollection <IRegressionSolution>();

            evaluationCache         = new Dictionary <int, double>(problemData.Dataset.Rows);
            trainingEvaluationCache = new Dictionary <int, double>(problemData.TrainingIndices.Count());
            testEvaluationCache     = new Dictionary <int, double>(problemData.TestIndices.Count());


            var solutions = model.Models.Select(m => m.CreateRegressionSolution((IRegressionProblemData)problemData.Clone()));

            foreach (var solution in solutions)
            {
                regressionSolutions.Add(solution);
                trainingPartitions.Add(solution.Model, solution.ProblemData.TrainingPartition);
                testPartitions.Add(solution.Model, solution.ProblemData.TestPartition);
            }

            RecalculateResults();
            RegisterModelEvents();
            RegisterRegressionSolutionsEventHandler();
        }
コード例 #2
0
    public RegressionEnsembleSolution(IRegressionEnsembleModel model, IRegressionProblemData problemData)
      : base(model, new RegressionEnsembleProblemData(problemData)) {
      trainingPartitions = new Dictionary<IRegressionModel, IntRange>();
      testPartitions = new Dictionary<IRegressionModel, IntRange>();
      regressionSolutions = new ItemCollection<IRegressionSolution>();

      evaluationCache = new Dictionary<int, double>(problemData.Dataset.Rows);
      trainingEvaluationCache = new Dictionary<int, double>(problemData.TrainingIndices.Count());
      testEvaluationCache = new Dictionary<int, double>(problemData.TestIndices.Count());


      var solutions = model.Models.Select(m => m.CreateRegressionSolution((IRegressionProblemData)problemData.Clone()));
      foreach (var solution in solutions) {
        regressionSolutions.Add(solution);
        trainingPartitions.Add(solution.Model, solution.ProblemData.TrainingPartition);
        testPartitions.Add(solution.Model, solution.ProblemData.TestPartition);
      }

      RecalculateResults();
      RegisterModelEvents();
      RegisterRegressionSolutionsEventHandler();
    }