Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/15/17 09:57:50 (7 years ago)
Author:
abeham
Message:

#2701:

  • changed adaptive walk performance model to relative
  • added ConfidenceConstantModel for regression
  • using constant model as fallback to GPR
  • reorganized code
File:
1 copied

Legend:

Unmodified
Added
Removed
  • branches/MemPRAlgorithm/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/ConfidenceConstantModel.cs

    r14561 r14573  
    3030namespace HeuristicLab.Problems.DataAnalysis {
    3131  [StorableClass]
    32   [Item("Constant Model", "A model that always returns the same constant value regardless of the presented input data.")]
    33   public class ConstantModel : RegressionModel, IClassificationModel, ITimeSeriesPrognosisModel, IStringConvertibleValue {
     32  [Item("Confidence Constant Model", "A model that always returns the same constant mean value and variance regardless of the presented input data.")]
     33  public class ConfidenceConstantModel : RegressionModel, IConfidenceRegressionModel, IStringConvertibleValue {
    3434    public override IEnumerable<string> VariablesUsedForPrediction { get { return Enumerable.Empty<string>(); } }
    3535
     
    4242    }
    4343
     44    [Storable]
     45    private readonly double variance;
     46    public double Variance {
     47      get { return variance; }
     48      // setter not implemented because manipulation of the variance is not allowed
     49    }
     50
    4451    [StorableConstructor]
    45     protected ConstantModel(bool deserializing) : base(deserializing) { }
    46     protected ConstantModel(ConstantModel original, Cloner cloner)
     52    protected ConfidenceConstantModel(bool deserializing) : base(deserializing) { }
     53    protected ConfidenceConstantModel(ConfidenceConstantModel original, Cloner cloner)
    4754      : base(original, cloner) {
    4855      this.constant = original.constant;
     56      this.variance = original.variance;
    4957    }
    5058
    51     public override IDeepCloneable Clone(Cloner cloner) { return new ConstantModel(this, cloner); }
     59    public override IDeepCloneable Clone(Cloner cloner) { return new ConfidenceConstantModel(this, cloner); }
    5260
    53     public ConstantModel(double constant, string targetVariable)
     61    public ConfidenceConstantModel(double constant, double variance, string targetVariable)
    5462      : base(targetVariable) {
    5563      this.name = ItemName;
    5664      this.description = ItemDescription;
    5765      this.constant = constant;
     66      this.variance = variance;
    5867      this.ReadOnly = true; // changing a constant regression model is not supported
    5968    }
     
    6271      return rows.Select(row => Constant);
    6372    }
    64     public IEnumerable<double> GetEstimatedClassValues(IDataset dataset, IEnumerable<int> rows) {
    65       return GetEstimatedValues(dataset, rows);
    66     }
    67     public IEnumerable<IEnumerable<double>> GetPrognosedValues(IDataset dataset, IEnumerable<int> rows, IEnumerable<int> horizons) {
    68       return rows.Select(_ => horizons.Select(__ => Constant));
     73
     74    public IEnumerable<double> GetEstimatedVariances(IDataset dataset, IEnumerable<int> rows) {
     75      return rows.Select(x => Variance);
    6976    }
    7077
    7178    public override IRegressionSolution CreateRegressionSolution(IRegressionProblemData problemData) {
    72       return new ConstantRegressionSolution(this, new RegressionProblemData(problemData));
    73     }
    74     public IClassificationSolution CreateClassificationSolution(IClassificationProblemData problemData) {
    75       return new ConstantClassificationSolution(this, new ClassificationProblemData(problemData));
    76     }
    77     public ITimeSeriesPrognosisSolution CreateTimeSeriesPrognosisSolution(ITimeSeriesPrognosisProblemData problemData) {
    78       return new TimeSeriesPrognosisSolution(this, new TimeSeriesPrognosisProblemData(problemData));
     79      return new ConfidenceRegressionSolution(this, new RegressionProblemData(problemData));
    7980    }
    8081
    8182    public override string ToString() {
    82       return string.Format("Constant: {0}", GetValue());
     83      return string.Format("Constant: {0:E4}, Variance: {1:E4}", Constant, Variance);
    8384    }
    8485
     
    101102#pragma warning restore 0067
    102103    #endregion
    103 
    104104  }
    105105}
Note: See TracChangeset for help on using the changeset viewer.