Changeset 7306
- Timestamp:
- 01/10/12 17:04:29 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/SupportVectorMachine/SupportVectorRegression.cs
r7259 r7306 121 121 IRegressionProblemData problemData = Problem.ProblemData; 122 122 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); 124 128 125 129 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))); 126 133 } 127 134 128 135 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) { 130 138 Dataset dataset = problemData.Dataset; 131 139 string targetVariable = problemData.TargetVariable; … … 147 155 SVM.RangeTransform rangeTransform = SVM.RangeTransform.Compute(problem); 148 156 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; 151 164 } 152 165 #endregion
Note: See TracChangeset
for help on using the changeset viewer.