Free cookie consent management tool by TermsFeed Policy Generator

Changeset 7306 for trunk


Ignore:
Timestamp:
01/10/12 17:04:29 (13 years ago)
Author:
gkronber
Message:

#1750 added results for the support vector regression.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/SupportVectorMachine/SupportVectorRegression.cs

    r7259 r7306  
    121121      IRegressionProblemData problemData = Problem.ProblemData;
    122122      IEnumerable<string> selectedInputVariables = problemData.AllowedInputVariables;
    123       var solution = CreateSupportVectorRegressionSolution(problemData, selectedInputVariables, SvmType.Value, KernelType.Value, Cost.Value, Nu.Value, Gamma.Value, Epsilon.Value);
     123      double trainR2, testR2;
     124      int nSv;
     125      var solution = CreateSupportVectorRegressionSolution(problemData, selectedInputVariables, SvmType.Value,
     126        KernelType.Value, Cost.Value, Nu.Value, Gamma.Value, Epsilon.Value,
     127        out trainR2, out testR2, out nSv);
    124128
    125129      Results.Add(new Result("Support vector regression solution", "The support vector regression solution.", solution));
     130      Results.Add(new Result("Training R²", "The Pearson's R² of the SVR solution on the training partition.", new DoubleValue(trainR2)));
     131      Results.Add(new Result("Test R²", "The Pearson's R² of the SVR solution on the test partition.", new DoubleValue(testR2)));
     132      Results.Add(new Result("Number of support vectors", "The number of support vectors of the SVR solution.", new IntValue(nSv)));
    126133    }
    127134
    128135    public static SupportVectorRegressionSolution CreateSupportVectorRegressionSolution(IRegressionProblemData problemData, IEnumerable<string> allowedInputVariables,
    129       string svmType, string kernelType, double cost, double nu, double gamma, double epsilon) {
     136      string svmType, string kernelType, double cost, double nu, double gamma, double epsilon,
     137      out double trainingR2, out double testR2, out int nSv) {
    130138      Dataset dataset = problemData.Dataset;
    131139      string targetVariable = problemData.TargetVariable;
     
    147155      SVM.RangeTransform rangeTransform = SVM.RangeTransform.Compute(problem);
    148156      SVM.Problem scaledProblem = SVM.Scaling.Scale(rangeTransform, problem);
    149       var model = new SupportVectorMachineModel(SVM.Training.Train(scaledProblem, parameter), rangeTransform, targetVariable, allowedInputVariables);
    150       return new SupportVectorRegressionSolution(model, (IRegressionProblemData)problemData.Clone());
     157      var svmModel = SVM.Training.Train(scaledProblem, parameter);
     158      nSv = svmModel.SupportVectorCount;
     159      var model = new SupportVectorMachineModel(svmModel, rangeTransform, targetVariable, allowedInputVariables);
     160      var solution = new SupportVectorRegressionSolution(model, (IRegressionProblemData)problemData.Clone());
     161      trainingR2 = solution.TrainingRSquared;
     162      testR2 = solution.TestRSquared;
     163      return solution;
    151164    }
    152165    #endregion
Note: See TracChangeset for help on using the changeset viewer.