protected override void Run() {
      double rmsError, relClassificationError, outOfBagRmsError, outOfBagRelClassificationError;
      if (SetSeedRandomly) Seed = new System.Random().Next();

      var model = CreateRandomForestClassificationModel(Problem.ProblemData, NumberOfTrees, R, M, Seed, out rmsError, out relClassificationError, out outOfBagRmsError, out outOfBagRelClassificationError);
      Results.Add(new Result("Root mean square error", "The root of the mean of squared errors of the random forest regression solution on the training set.", new DoubleValue(rmsError)));
      Results.Add(new Result("Relative classification error", "Relative classification error of the random forest regression solution on the training set.", new PercentValue(relClassificationError)));
      Results.Add(new Result("Root mean square error (out-of-bag)", "The out-of-bag root of the mean of squared errors of the random forest regression solution.", new DoubleValue(outOfBagRmsError)));
      Results.Add(new Result("Relative classification error (out-of-bag)", "The out-of-bag relative classification error  of the random forest regression solution.", new PercentValue(outOfBagRelClassificationError)));

      if (CreateSolution) {
        var solution = new RandomForestClassificationSolution((IClassificationProblemData)Problem.ProblemData.Clone(), model);
        Results.Add(new Result(RandomForestClassificationModelResultName, "The random forest classification solution.", solution));
      }
    }
 private RandomForestClassificationSolution(RandomForestClassificationSolution original, Cloner cloner)
   : base(original, cloner) {
 }
 private RandomForestClassificationSolution(RandomForestClassificationSolution original, Cloner cloner)
     : base(original, cloner)
 {
 }