Changeset 8594 for trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective
- Timestamp:
- 09/07/12 11:27:49 (12 years ago)
- Location:
- trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectivePenaltyScoreEvaluator.cs
r8551 r8594 25 25 using HeuristicLab.Data; 26 26 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 27 using HeuristicLab.Parameters; 27 28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 28 29 … … 30 31 [Item("Penalty Score Evaluator", "Calculates the penalty score of a symbolic classification solution.")] 31 32 [StorableClass] 32 public class SymbolicClassificationSingleObjectivePenaltyScoreEvaluator : SymbolicClassificationSingleObjectiveEvaluator { 33 public class SymbolicClassificationSingleObjectivePenaltyScoreEvaluator : SymbolicClassificationSingleObjectiveEvaluator, ISymbolicClassificationModelCreatorOperator { 34 private const string ModelCreatorParameterName = "ModelCreator"; 33 35 public override bool Maximization { get { return false; } } 36 37 public IValueLookupParameter<ISymbolicClassificationModelCreator> ModelCreatorParameter { 38 get { return (IValueLookupParameter<ISymbolicClassificationModelCreator>)Parameters[ModelCreatorParameterName]; } 39 } 40 ILookupParameter<ISymbolicClassificationModelCreator> ISymbolicClassificationModelCreatorOperator.ModelCreatorParameter { 41 get { return ModelCreatorParameter; } 42 } 34 43 35 44 [StorableConstructor] 36 45 protected SymbolicClassificationSingleObjectivePenaltyScoreEvaluator(bool deserializing) : base(deserializing) { } 37 46 protected SymbolicClassificationSingleObjectivePenaltyScoreEvaluator(SymbolicClassificationSingleObjectivePenaltyScoreEvaluator original, Cloner cloner) : base(original, cloner) { } 38 public SymbolicClassificationSingleObjectivePenaltyScoreEvaluator() : base() { } 47 public SymbolicClassificationSingleObjectivePenaltyScoreEvaluator() 48 : base() { 49 Parameters.Add(new ValueLookupParameter<ISymbolicClassificationModelCreator>(ModelCreatorParameterName, "")); 50 } 39 51 40 52 public override IDeepCloneable Clone(Cloner cloner) { 41 53 return new SymbolicClassificationSingleObjectivePenaltyScoreEvaluator(this, cloner); 42 54 } 55 56 [StorableHook(HookType.AfterDeserialization)] 57 private void AfterDeserialization() { 58 if (!Parameters.ContainsKey(ModelCreatorParameterName)) 59 Parameters.Add(new ValueLookupParameter<ISymbolicClassificationModelCreator>(ModelCreatorParameterName, "")); 60 } 61 43 62 44 63 public override IOperation Apply() { … … 66 85 SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = context; 67 86 EstimationLimitsParameter.ExecutionContext = context; 87 ModelCreatorParameter.ExecutionContext = context; 68 88 69 var model = new SymbolicDiscriminantFunctionClassificationModel(tree, SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper);70 model. SetAccuracyMaximizingThresholds(problemData);89 var model = ModelCreatorParameter.ActualValue.CreateSymbolicClassificationModel(tree, SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper); 90 model.RecalculateModelParameters(problemData, rows); 71 91 double penalty = Calculate(model, problemData, rows); 72 92 73 93 SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = null; 74 94 EstimationLimitsParameter.ExecutionContext = null; 95 ModelCreatorParameter.ExecutionContext = null; 75 96 76 97 return penalty; -
trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveProblem.cs
r8175 r8594 35 35 private const string EstimationLimitsParameterName = "EstimationLimits"; 36 36 private const string EstimationLimitsParameterDescription = "The lower and upper limit for the estimated value that can be returned by the symbolic classification model."; 37 private const string ModelCreatorParameterName = "ModelCreator"; 37 38 38 39 #region parameter properties … … 40 41 get { return (IFixedValueParameter<DoubleLimit>)Parameters[EstimationLimitsParameterName]; } 41 42 } 43 public IValueParameter<ISymbolicClassificationModelCreator> ModelCreatorParameter { 44 get { return (IValueParameter<ISymbolicClassificationModelCreator>)Parameters[ModelCreatorParameterName]; } 45 } 42 46 #endregion 43 47 #region properties 44 48 public DoubleLimit EstimationLimits { 45 49 get { return EstimationLimitsParameter.Value; } 50 } 51 public ISymbolicClassificationModelCreator ModelCreator { 52 get { return ModelCreatorParameter.Value; } 46 53 } 47 54 #endregion … … 57 64 : base(new ClassificationProblemData(), new SymbolicClassificationSingleObjectiveMeanSquaredErrorEvaluator(), new SymbolicDataAnalysisExpressionTreeCreator()) { 58 65 Parameters.Add(new FixedValueParameter<DoubleLimit>(EstimationLimitsParameterName, EstimationLimitsParameterDescription)); 66 Parameters.Add(new ValueParameter<ISymbolicClassificationModelCreator>(ModelCreatorParameterName, "", new AccuracyMaximizingThresholdsModelCreator())); 59 67 60 68 EstimationLimitsParameter.Hidden = true; … … 71 79 [StorableHook(HookType.AfterDeserialization)] 72 80 private void AfterDeserialization() { 73 RegisterEventHandlers(); 74 // compatibility 81 82 if (!Parameters.ContainsKey(ModelCreatorParameterName)) 83 Parameters.Add(new ValueParameter<ISymbolicClassificationModelCreator>(ModelCreatorParameterName, "", new AccuracyMaximizingThresholdsModelCreator())); 84 75 85 bool changed = false; 76 86 if (!Operators.OfType<SymbolicClassificationSingleObjectiveTrainingParetoBestSolutionAnalyzer>().Any()) { … … 83 93 } 84 94 if (changed) ParameterizeOperators(); 95 RegisterEventHandlers(); 85 96 } 86 97 87 98 private void RegisterEventHandlers() { 88 99 SymbolicExpressionTreeGrammarParameter.ValueChanged += (o, e) => ConfigureGrammarSymbols(); 100 ModelCreatorParameter.NameChanged += (o, e) => ParameterizeOperators(); 89 101 } 90 102 … … 125 137 if (Parameters.ContainsKey(EstimationLimitsParameterName)) { 126 138 var operators = Parameters.OfType<IValueParameter>().Select(p => p.Value).OfType<IOperator>().Union(Operators); 127 foreach (var op in operators.OfType<ISymbolicDataAnalysisBoundedOperator>()) {139 foreach (var op in operators.OfType<ISymbolicDataAnalysisBoundedOperator>()) 128 140 op.EstimationLimitsParameter.ActualName = EstimationLimitsParameter.Name; 129 } 141 foreach (var op in operators.OfType<ISymbolicClassificationModelCreatorOperator>()) 142 op.ModelCreatorParameter.ActualName = ModelCreatorParameter.Name; 130 143 } 131 144 } -
trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveTrainingBestSolutionAnalyzer.cs
r8550 r8594 34 34 [StorableClass] 35 35 public sealed class SymbolicClassificationSingleObjectiveTrainingBestSolutionAnalyzer : SymbolicDataAnalysisSingleObjectiveTrainingBestSolutionAnalyzer<ISymbolicClassificationSolution>, 36 ISymbolicDataAnalysisInterpreterOperator, ISymbolicDataAnalysisBoundedOperator {36 ISymbolicDataAnalysisInterpreterOperator, ISymbolicDataAnalysisBoundedOperator, ISymbolicClassificationModelCreatorOperator { 37 37 private const string ProblemDataParameterName = "ProblemData"; 38 private const string ModelCreatorParameterName = "ModelCreator"; 38 39 private const string SymbolicDataAnalysisTreeInterpreterParameterName = "SymbolicDataAnalysisTreeInterpreter"; 39 40 private const string EstimationLimitsParameterName = "UpperEstimationLimit"; … … 42 43 public ILookupParameter<IClassificationProblemData> ProblemDataParameter { 43 44 get { return (ILookupParameter<IClassificationProblemData>)Parameters[ProblemDataParameterName]; } 45 } 46 public IValueLookupParameter<ISymbolicClassificationModelCreator> ModelCreatorParameter { 47 get { return (IValueLookupParameter<ISymbolicClassificationModelCreator>)Parameters[ModelCreatorParameterName]; } 48 } 49 ILookupParameter<ISymbolicClassificationModelCreator> ISymbolicClassificationModelCreatorOperator.ModelCreatorParameter { 50 get { return ModelCreatorParameter; } 44 51 } 45 52 public ILookupParameter<ISymbolicDataAnalysisExpressionTreeInterpreter> SymbolicDataAnalysisTreeInterpreterParameter { … … 65 72 : base() { 66 73 Parameters.Add(new LookupParameter<IClassificationProblemData>(ProblemDataParameterName, "The problem data for the symbolic classification solution.")); 74 Parameters.Add(new ValueLookupParameter<ISymbolicClassificationModelCreator>(ModelCreatorParameterName, "")); 67 75 Parameters.Add(new LookupParameter<ISymbolicDataAnalysisExpressionTreeInterpreter>(SymbolicDataAnalysisTreeInterpreterParameterName, "The symbolic data analysis tree interpreter for the symbolic expression tree.")); 68 76 Parameters.Add(new ValueLookupParameter<DoubleLimit>(EstimationLimitsParameterName, "The lower and upper limit for the estimated values produced by the symbolic classification model.")); 69 77 Parameters.Add(new ValueParameter<BoolValue>(ApplyLinearScalingParameterName, "Flag that indicates if the produced symbolic classification solution should be linearly scaled.", new BoolValue(false))); 70 78 } 79 71 80 public override IDeepCloneable Clone(Cloner cloner) { 72 81 return new SymbolicClassificationSingleObjectiveTrainingBestSolutionAnalyzer(this, cloner); 73 82 } 83 [StorableHook(HookType.AfterDeserialization)] 84 private void AfterDeserialization() { 85 if (!Parameters.ContainsKey(ModelCreatorParameterName)) 86 Parameters.Add(new ValueLookupParameter<ISymbolicClassificationModelCreator>(ModelCreatorParameterName, "")); 87 } 74 88 75 89 protected override ISymbolicClassificationSolution CreateSolution(ISymbolicExpressionTree bestTree, double bestQuality) { 76 var model = new SymbolicDiscriminantFunctionClassificationModel((ISymbolicExpressionTree)bestTree.Clone(), SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper);77 if (ApplyLinearScaling.Value) Symbolic DiscriminantFunctionClassificationModel.Scale(model, ProblemDataParameter.ActualValue);90 var model = ModelCreatorParameter.ActualValue.CreateSymbolicClassificationModel((ISymbolicExpressionTree)bestTree.Clone(), SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper); 91 if (ApplyLinearScaling.Value) SymbolicClassificationModel.Scale(model, ProblemDataParameter.ActualValue); 78 92 79 model. SetAccuracyMaximizingThresholds(ProblemDataParameter.ActualValue);80 return new SymbolicDiscriminantFunctionClassificationSolution(model,(IClassificationProblemData)ProblemDataParameter.ActualValue.Clone());93 model.RecalculateModelParameters(ProblemDataParameter.ActualValue, ProblemDataParameter.ActualValue.TrainingIndices); 94 return model.CreateClassificationSolution((IClassificationProblemData)ProblemDataParameter.ActualValue.Clone()); 81 95 } 82 96 } -
trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveTrainingParetoBestSolutionAnalyzer.cs
r8550 r8594 33 33 [Item("SymbolicClassificationSingleObjectiveTrainingParetoBestSolutionAnalyzer", "An operator that collects the training Pareto-best symbolic classification solutions for single objective symbolic classification problems.")] 34 34 [StorableClass] 35 public sealed class SymbolicClassificationSingleObjectiveTrainingParetoBestSolutionAnalyzer : SymbolicDataAnalysisSingleObjectiveTrainingParetoBestSolutionAnalyzer<IClassificationProblemData, ISymbolicClassificationSolution> {35 public sealed class SymbolicClassificationSingleObjectiveTrainingParetoBestSolutionAnalyzer : SymbolicDataAnalysisSingleObjectiveTrainingParetoBestSolutionAnalyzer<IClassificationProblemData, ISymbolicClassificationSolution>, ISymbolicClassificationModelCreatorOperator { 36 36 private const string ApplyLinearScalingParameterName = "ApplyLinearScaling"; 37 private const string ModelCreatorParameterName = "ModelCreator"; 37 38 #region parameter properties 38 39 public IValueParameter<BoolValue> ApplyLinearScalingParameter { 39 40 get { return (IValueParameter<BoolValue>)Parameters[ApplyLinearScalingParameterName]; } 41 } 42 public IValueLookupParameter<ISymbolicClassificationModelCreator> ModelCreatorParameter { 43 get { return (IValueLookupParameter<ISymbolicClassificationModelCreator>)Parameters[ModelCreatorParameterName]; } 44 } 45 ILookupParameter<ISymbolicClassificationModelCreator> ISymbolicClassificationModelCreatorOperator.ModelCreatorParameter { 46 get { return ModelCreatorParameter; } 40 47 } 41 48 #endregion … … 53 60 : base() { 54 61 Parameters.Add(new ValueParameter<BoolValue>(ApplyLinearScalingParameterName, "Flag that indicates if the produced symbolic classification solution should be linearly scaled.", new BoolValue(false))); 62 Parameters.Add(new ValueLookupParameter<ISymbolicClassificationModelCreator>(ModelCreatorParameterName, "")); 55 63 } 56 64 public override IDeepCloneable Clone(Cloner cloner) { … … 58 66 } 59 67 68 [StorableHook(HookType.AfterDeserialization)] 69 private void AfterDeserialization() { 70 if (!Parameters.ContainsKey(ModelCreatorParameterName)) 71 Parameters.Add(new ValueLookupParameter<ISymbolicClassificationModelCreator>(ModelCreatorParameterName, "")); 72 } 73 60 74 protected override ISymbolicClassificationSolution CreateSolution(ISymbolicExpressionTree bestTree) { 61 var model = new SymbolicDiscriminantFunctionClassificationModel((ISymbolicExpressionTree)bestTree.Clone(), SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper);62 if (ApplyLinearScaling.Value) Symbolic DiscriminantFunctionClassificationModel.Scale(model, ProblemDataParameter.ActualValue);75 var model = ModelCreatorParameter.ActualValue.CreateSymbolicClassificationModel((ISymbolicExpressionTree)bestTree.Clone(), SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper); 76 if (ApplyLinearScaling.Value) SymbolicClassificationModel.Scale(model, ProblemDataParameter.ActualValue); 63 77 64 model. SetAccuracyMaximizingThresholds(ProblemDataParameter.ActualValue);65 return new SymbolicDiscriminantFunctionClassificationSolution(model,(IClassificationProblemData)ProblemDataParameter.ActualValue.Clone());78 model.RecalculateModelParameters(ProblemDataParameter.ActualValue, ProblemDataParameter.ActualValue.TrainingIndices); 79 return model.CreateClassificationSolution((IClassificationProblemData)ProblemDataParameter.ActualValue.Clone()); 66 80 } 67 81 } -
trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveValidationBestSolutionAnalyzer.cs
r8550 r8594 34 34 [StorableClass] 35 35 public sealed class SymbolicClassificationSingleObjectiveValidationBestSolutionAnalyzer : SymbolicDataAnalysisSingleObjectiveValidationBestSolutionAnalyzer<ISymbolicClassificationSolution, ISymbolicClassificationSingleObjectiveEvaluator, IClassificationProblemData>, 36 ISymbolicDataAnalysisBoundedOperator {36 ISymbolicDataAnalysisBoundedOperator, ISymbolicClassificationModelCreatorOperator { 37 37 private const string EstimationLimitsParameterName = "EstimationLimits"; 38 38 private const string ApplyLinearScalingParameterName = "ApplyLinearScaling"; 39 private const string ModelCreatorParameterName = "ModelCreator"; 39 40 40 41 #region parameter properties … … 44 45 public IValueParameter<BoolValue> ApplyLinearScalingParameter { 45 46 get { return (IValueParameter<BoolValue>)Parameters[ApplyLinearScalingParameterName]; } 47 } 48 public IValueLookupParameter<ISymbolicClassificationModelCreator> ModelCreatorParameter { 49 get { return (IValueLookupParameter<ISymbolicClassificationModelCreator>)Parameters[ModelCreatorParameterName]; } 50 } 51 ILookupParameter<ISymbolicClassificationModelCreator> ISymbolicClassificationModelCreatorOperator.ModelCreatorParameter { 52 get { return ModelCreatorParameter; } 46 53 } 47 54 #endregion … … 59 66 Parameters.Add(new ValueLookupParameter<DoubleLimit>(EstimationLimitsParameterName, "The lower and upper limit for the estimated values produced by the symbolic classification model.")); 60 67 Parameters.Add(new ValueParameter<BoolValue>(ApplyLinearScalingParameterName, "Flag that indicates if the produced symbolic classification solution should be linearly scaled.", new BoolValue(false))); 68 Parameters.Add(new ValueLookupParameter<ISymbolicClassificationModelCreator>(ModelCreatorParameterName, "")); 61 69 } 62 70 public override IDeepCloneable Clone(Cloner cloner) { … … 64 72 } 65 73 74 [StorableHook(HookType.AfterDeserialization)] 75 private void AfterDeserialization() { 76 if (!Parameters.ContainsKey(ModelCreatorParameterName)) 77 Parameters.Add(new ValueLookupParameter<ISymbolicClassificationModelCreator>(ModelCreatorParameterName, "")); 78 } 79 66 80 protected override ISymbolicClassificationSolution CreateSolution(ISymbolicExpressionTree bestTree, double bestQuality) { 67 var model = new SymbolicDiscriminantFunctionClassificationModel((ISymbolicExpressionTree)bestTree.Clone(), SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper);68 if (ApplyLinearScaling.Value) Symbolic DiscriminantFunctionClassificationModel.Scale(model, ProblemDataParameter.ActualValue);81 var model = ModelCreatorParameter.ActualValue.CreateSymbolicClassificationModel((ISymbolicExpressionTree)bestTree.Clone(), SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper); 82 if (ApplyLinearScaling.Value) SymbolicClassificationModel.Scale(model, ProblemDataParameter.ActualValue); 69 83 70 model. SetAccuracyMaximizingThresholds(ProblemDataParameter.ActualValue);71 return new SymbolicDiscriminantFunctionClassificationSolution(model,(IClassificationProblemData)ProblemDataParameter.ActualValue.Clone());84 model.RecalculateModelParameters(ProblemDataParameter.ActualValue, ProblemDataParameter.ActualValue.TrainingIndices); 85 return model.CreateClassificationSolution((IClassificationProblemData)ProblemDataParameter.ActualValue.Clone()); 72 86 } 73 87 } -
trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveValidationParetoBestSolutionAnalyzer.cs
r8550 r8594 33 33 [Item("SymbolicClassificationSingleObjectiveValidationParetoBestSolutionAnalyzer", "An operator that collects the validation Pareto-best symbolic classification solutions for single objective symbolic classification problems.")] 34 34 [StorableClass] 35 public sealed class SymbolicClassificationSingleObjectiveValidationParetoBestSolutionAnalyzer : SymbolicDataAnalysisSingleObjectiveValidationParetoBestSolutionAnalyzer<ISymbolicClassificationSolution, ISymbolicClassificationSingleObjectiveEvaluator, IClassificationProblemData> {35 public sealed class SymbolicClassificationSingleObjectiveValidationParetoBestSolutionAnalyzer : SymbolicDataAnalysisSingleObjectiveValidationParetoBestSolutionAnalyzer<ISymbolicClassificationSolution, ISymbolicClassificationSingleObjectiveEvaluator, IClassificationProblemData>, ISymbolicClassificationModelCreatorOperator { 36 36 private const string ApplyLinearScalingParameterName = "ApplyLinearScaling"; 37 private const string ModelCreatorParameterName = "ModelCreator"; 37 38 #region parameter properties 38 39 public IValueParameter<BoolValue> ApplyLinearScalingParameter { 39 40 get { return (IValueParameter<BoolValue>)Parameters[ApplyLinearScalingParameterName]; } 41 } 42 public IValueLookupParameter<ISymbolicClassificationModelCreator> ModelCreatorParameter { 43 get { return (IValueLookupParameter<ISymbolicClassificationModelCreator>)Parameters[ModelCreatorParameterName]; } 44 } 45 ILookupParameter<ISymbolicClassificationModelCreator> ISymbolicClassificationModelCreatorOperator.ModelCreatorParameter { 46 get { return ModelCreatorParameter; } 40 47 } 41 48 #endregion … … 53 60 : base() { 54 61 Parameters.Add(new ValueParameter<BoolValue>(ApplyLinearScalingParameterName, "Flag that indicates if the produced symbolic classification solution should be linearly scaled.", new BoolValue(false))); 62 Parameters.Add(new ValueLookupParameter<ISymbolicClassificationModelCreator>(ModelCreatorParameterName, "")); 55 63 } 56 64 public override IDeepCloneable Clone(Cloner cloner) { … … 58 66 } 59 67 68 [StorableHook(HookType.AfterDeserialization)] 69 private void AfterDeserialization() { 70 if (!Parameters.ContainsKey(ModelCreatorParameterName)) 71 Parameters.Add(new ValueLookupParameter<ISymbolicClassificationModelCreator>(ModelCreatorParameterName, "")); 72 } 73 60 74 protected override ISymbolicClassificationSolution CreateSolution(ISymbolicExpressionTree bestTree) { 61 var model = new SymbolicDiscriminantFunctionClassificationModel((ISymbolicExpressionTree)bestTree.Clone(), SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper);62 if (ApplyLinearScaling.Value) Symbolic DiscriminantFunctionClassificationModel.Scale(model, ProblemDataParameter.ActualValue);75 var model = ModelCreatorParameter.ActualValue.CreateSymbolicClassificationModel((ISymbolicExpressionTree)bestTree.Clone(), SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper); 76 if (ApplyLinearScaling.Value) SymbolicClassificationModel.Scale(model, ProblemDataParameter.ActualValue); 63 77 64 model. SetAccuracyMaximizingThresholds(ProblemDataParameter.ActualValue);65 return new SymbolicDiscriminantFunctionClassificationSolution(model,(IClassificationProblemData)ProblemDataParameter.ActualValue.Clone());78 model.RecalculateModelParameters(ProblemDataParameter.ActualValue, ProblemDataParameter.ActualValue.TrainingIndices); 79 return model.CreateClassificationSolution((IClassificationProblemData)ProblemDataParameter.ActualValue.Clone()); 66 80 } 67 81 }
Note: See TracChangeset
for help on using the changeset viewer.