Changeset 8585 for branches/HeuristicLab.Mono/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SymbolicDiscriminantFunctionClassificationModel.cs
- Timestamp:
- 09/06/12 09:52:52 (12 years ago)
- Location:
- branches/HeuristicLab.Mono
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Mono
-
branches/HeuristicLab.Mono/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification
- Property svn:mergeinfo changed
-
branches/HeuristicLab.Mono/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4
- Property svn:ignore
-
old new 1 *.user 2 Plugin.cs 1 3 bin 2 *.user3 HeuristicLabProblemsDataAnalysisSymbolicClassificationPlugin.cs4 4 obj 5 *.vs10x6 Plugin.cs
-
- Property svn:ignore
-
branches/HeuristicLab.Mono/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SymbolicDiscriminantFunctionClassificationModel.cs
r8139 r8585 67 67 double lowerEstimationLimit = double.MinValue, double upperEstimationLimit = double.MaxValue) 68 68 : base(tree, interpreter) { 69 th resholds = new double[] { double.NegativeInfinity };70 classValues = new double[] { 0.0 };69 this.thresholds = new double[0]; 70 this.classValues = new double[0]; 71 71 this.lowerEstimationLimit = lowerEstimationLimit; 72 72 this.upperEstimationLimit = upperEstimationLimit; … … 88 88 89 89 public IEnumerable<double> GetEstimatedValues(Dataset dataset, IEnumerable<int> rows) { 90 return Interpreter.GetSymbolicExpressionTreeValues(SymbolicExpressionTree, dataset, rows) 91 .LimitToRange(lowerEstimationLimit, upperEstimationLimit); 90 return Interpreter.GetSymbolicExpressionTreeValues(SymbolicExpressionTree, dataset, rows).LimitToRange(lowerEstimationLimit, upperEstimationLimit); 92 91 } 93 92 94 93 public IEnumerable<double> GetEstimatedClassValues(Dataset dataset, IEnumerable<int> rows) { 94 if (!Thresholds.Any() && !ClassValues.Any()) throw new ArgumentException("No thresholds and class values were set for the current symbolic classification model."); 95 95 foreach (var x in GetEstimatedValues(dataset, rows)) { 96 96 int classIndex = 0; … … 105 105 106 106 public SymbolicDiscriminantFunctionClassificationSolution CreateClassificationSolution(IClassificationProblemData problemData) { 107 return new SymbolicDiscriminantFunctionClassificationSolution(this, problemData);107 return new SymbolicDiscriminantFunctionClassificationSolution(this, new ClassificationProblemData(problemData)); 108 108 } 109 109 IClassificationSolution IClassificationModel.CreateClassificationSolution(IClassificationProblemData problemData) { … … 121 121 } 122 122 #endregion 123 124 public void SetAccuracyMaximizingThresholds(IClassificationProblemData problemData) { 125 double[] classValues; 126 double[] thresholds; 127 var targetClassValues = problemData.Dataset.GetDoubleValues(problemData.TargetVariable, problemData.TrainingIndices); 128 var estimatedTrainingValues = GetEstimatedValues(problemData.Dataset, problemData.TrainingIndices); 129 AccuracyMaximizationThresholdCalculator.CalculateThresholds(problemData, estimatedTrainingValues, targetClassValues, out classValues, out thresholds); 130 131 SetThresholdsAndClassValues(thresholds, classValues); 132 } 133 134 public void SetClassDistributionCutPointThresholds(IClassificationProblemData problemData) { 135 double[] classValues; 136 double[] thresholds; 137 var targetClassValues = problemData.Dataset.GetDoubleValues(problemData.TargetVariable, problemData.TrainingIndices); 138 var estimatedTrainingValues = GetEstimatedValues(problemData.Dataset, problemData.TrainingIndices); 139 NormalDistributionCutPointsThresholdCalculator.CalculateThresholds(problemData, estimatedTrainingValues, targetClassValues, out classValues, out thresholds); 140 141 SetThresholdsAndClassValues(thresholds, classValues); 142 } 123 143 124 144 public static void Scale(SymbolicDiscriminantFunctionClassificationModel model, IClassificationProblemData problemData) {
Note: See TracChangeset
for help on using the changeset viewer.