Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/22/21 14:59:58 (3 years ago)
Author:
gkronber
Message:

#3073: refactoring ShapeConstrainedRegressionProblem as discussed with MKo and CHa

Location:
trunk/HeuristicLab.Problems.DataAnalysis/3.4
Files:
4 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/HeuristicLab.Problems.DataAnalysis/3.4/HeuristicLab.Problems.DataAnalysis-3.4.csproj

    r17931 r17958  
    143143    <Compile Include="Implementation\Interval\Interval.cs" />
    144144    <Compile Include="Implementation\Interval\IntervalCollection.cs" />
     145    <Compile Include="Implementation\Interval\IShapeConstrainedRegressionProblem.cs" />
     146    <Compile Include="Implementation\Interval\IShapeConstrainedRegressionProblemData.cs" />
    145147    <Compile Include="Implementation\Interval\ShapeConstraint.cs" />
     148    <Compile Include="Implementation\Interval\ShapeConstrainedRegressionProblemData.cs" />
     149    <Compile Include="Implementation\Interval\ShapeConstrainedRegressionProblem.cs" />
    146150    <Compile Include="Implementation\Interval\ShapeConstraintsParser.cs" />
    147151    <Compile Include="Implementation\Regression\ConfidenceBoundRegressionSolution.cs" />
  • trunk/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionProblemData.cs

    r17911 r17958  
    3535    protected const string TargetVariableParameterName = "TargetVariable";
    3636    protected const string VariableRangesParameterName = "VariableRanges";
    37     protected const string ShapeConstraintsParameterName = "ShapeConstraints";
    3837    public string Filename { get; set; }
    3938
     
    7877      defaultDataset = new Dataset(new string[] { "y", "x" }, kozaF1);
    7978      defaultDataset.Name = "Fourth-order Polynomial Function Benchmark Dataset";
    80       defaultDataset.Description = "f(x) = x^4 + x^3 + x^2 + x^1";
     79      defaultDataset.Description = "f(x) = x^4 + x^3 + x^2 + x";
    8180      defaultAllowedInputVariables = new List<string>() { "x" };
    8281      defaultTargetVariable = "y";
     
    9493      problemData.Parameters.Add(new ConstrainedValueParameter<StringValue>(TargetVariableParameterName, new ItemSet<StringValue>()));
    9594      problemData.Parameters.Add(new FixedValueParameter<IntervalCollection>(VariableRangesParameterName, "", new IntervalCollection()));
    96       problemData.Parameters.Add(new FixedValueParameter<ShapeConstraints>(ShapeConstraintsParameterName, "", new ShapeConstraints()));
    9795      emptyProblemData = problemData;
    9896    }
     
    10199    #region parameter properties
    102100    public IConstrainedValueParameter<StringValue> TargetVariableParameter => (IConstrainedValueParameter<StringValue>)Parameters[TargetVariableParameterName];
    103     public IFixedValueParameter<ShapeConstraints> ShapeConstraintsParameter => (IFixedValueParameter<ShapeConstraints>)Parameters[ShapeConstraintsParameterName];
    104101    public IFixedValueParameter<IntervalCollection> VariableRangesParameter => (IFixedValueParameter<IntervalCollection>)Parameters[VariableRangesParameterName];
    105102    #endregion
     
    109106      get => VariableRangesParameter.Value;
    110107    }
    111 
    112 
    113     public ShapeConstraints ShapeConstraints => ShapeConstraintsParameter.Value;
    114 
    115108
    116109    public string TargetVariable {
     
    140133        Parameters.Add(new FixedValueParameter<IntervalCollection>(VariableRangesParameterName, intervalCollection));
    141134      }
    142       if (Parameters.ContainsKey("IntervalConstraints")) {
    143         var param = (IFixedValueParameter<ShapeConstraints>)Parameters["IntervalConstraints"];
    144         Parameters.Remove(param);
    145         Parameters.Add(new FixedValueParameter<ShapeConstraints>(ShapeConstraintsParameterName, param.Value));
    146       }
    147       if (!Parameters.ContainsKey(ShapeConstraintsParameterName)) {
    148         Parameters.Add(new FixedValueParameter<ShapeConstraints>(ShapeConstraintsParameterName, new ShapeConstraints()));
    149       }
    150135
    151136      RegisterParameterEvents();
     
    174159    public RegressionProblemData(IDataset dataset, IEnumerable<string> allowedInputVariables, string targetVariable,
    175160      IEnumerable<ITransformation> transformations = null,
    176       IntervalCollection variableRanges = null,
    177       ShapeConstraints shapeConstraints = null)
     161      IntervalCollection variableRanges = null)
    178162      : base(dataset, allowedInputVariables, transformations ?? Enumerable.Empty<ITransformation>()) {
    179163      var variables = InputVariables.Select(x => x.AsReadOnly()).ToList();
     
    183167      }
    184168      Parameters.Add(new FixedValueParameter<IntervalCollection>(VariableRangesParameterName, variableRanges));
    185 
    186       if (shapeConstraints == null) {
    187         shapeConstraints = new ShapeConstraints();
    188       }
    189       Parameters.Add(new FixedValueParameter<ShapeConstraints>(ShapeConstraintsParameterName, shapeConstraints));
    190       RegisterParameterEvents();
    191169    }
    192170    private void RegisterParameterEvents() {
    193171      TargetVariableParameter.ValueChanged += new EventHandler(Parameter_ValueChanged);
    194       // VariableRanges and ShapeConstraints are fixed parameters
     172      // VariableRanges are fixed parameters
    195173    }
    196174    private void Parameter_ValueChanged(object sender, EventArgs e) {
  • trunk/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/ShapeConstraints.cs

    r17902 r17958  
    7777    public event EventHandler Changed;
    7878
     79
    7980    private void RaiseChanged() {
    8081      var handlers = Changed;
  • trunk/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/Regression/IRegressionProblemData.cs

    r17902 r17958  
    2929  public interface IRegressionProblemData : IDataAnalysisProblemData {
    3030    string TargetVariable { get; set; }
    31 
    3231    IntervalCollection VariableRanges { get; }
    33     ShapeConstraints ShapeConstraints { get; }
    34 
    3532    IEnumerable<double> TargetVariableValues { get; }
    3633    IEnumerable<double> TargetVariableTrainingValues { get; }
Note: See TracChangeset for help on using the changeset viewer.