Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/19/16 19:56:11 (8 years ago)
Author:
bburlacu
Message:

#2604: Revert changes to DataAnalysisSolution and IDataAnalysisSolution and implement the desired properties in model classes that implement IDataAnalysisModel, IRegressionModel and IClassificationModel.

Location:
trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/BaselineClassifiers/OneRClassificationModel.cs

    r13098 r13921  
    3232  [Item("OneR Classification Model", "A model that uses intervals for one variable to determine the class.")]
    3333  public class OneRClassificationModel : NamedItem, IClassificationModel {
     34    public IEnumerable<string> VariablesUsedForPrediction {
     35      get { return Enumerable.Empty<string>(); }
     36    }
     37
     38    public string TargetVariable {
     39      get { return variable; }
     40    }
     41
    3442    [Storable]
    3543    protected string variable;
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/GaussianProcess/GaussianProcessModel.cs

    r13784 r13921  
    3535  [Item("GaussianProcessModel", "Represents a Gaussian process posterior.")]
    3636  public sealed class GaussianProcessModel : NamedItem, IGaussianProcessModel {
     37    public IEnumerable<string> VariablesUsedForPrediction { get; }
     38
    3739    [Storable]
    3840    private double negativeLogLikelihood;
     
    392394      }
    393395    }
     396
    394397  }
    395398}
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/GaussianProcess/StudentTProcessModel.cs

    r13784 r13921  
    3535  [Item("StudentTProcessModel", "Represents a Student-t process posterior.")]
    3636  public sealed class StudentTProcessModel : NamedItem, IGaussianProcessModel {
     37    public IEnumerable<string> VariablesUsedForPrediction {
     38      get { return allowedInputVariables; }
     39    }
     40
    3741    [Storable]
    3842    private double negativeLogLikelihood;
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/GradientBoostedTrees/GradientBoostedTreesModel.cs

    r13157 r13921  
    5858    #endregion
    5959
     60    public string TargetVariable {
     61      get { return models.First().TargetVariable; }
     62    }
     63
     64    public IEnumerable<string> VariablesUsedForPrediction {
     65      get { return models.SelectMany(x => x.VariablesUsedForPrediction).Distinct().OrderBy(x => x); }
     66    }
     67
    6068    private readonly IList<IRegressionModel> models;
    6169    public IEnumerable<IRegressionModel> Models { get { return models; } }
     
    108116      return new RegressionSolution(this, (IRegressionProblemData)problemData.Clone());
    109117    }
     118
    110119  }
    111120}
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/GradientBoostedTrees/GradientBoostedTreesModelSurrogate.cs

    r13157 r13921  
    2222
    2323using System.Collections.Generic;
     24using System.Linq;
    2425using HeuristicLab.Common;
    2526using HeuristicLab.Core;
     
    5455    private int maxSize;
    5556
     57    public string TargetVariable {
     58      get { return trainingProblemData.TargetVariable; }
     59    }
     60
     61    public IEnumerable<string> VariablesUsedForPrediction {
     62      get { return actualModel.Models.SelectMany(x => x.VariablesUsedForPrediction).Distinct().OrderBy(x => x); }
     63    }
    5664
    5765    [StorableConstructor]
     
    7381
    7482    // create only the surrogate model without an actual model
    75     public GradientBoostedTreesModelSurrogate(IRegressionProblemData trainingProblemData, uint seed, ILossFunction lossFunction, int iterations, int maxSize, double r, double m, double nu)
     83    public GradientBoostedTreesModelSurrogate(IRegressionProblemData trainingProblemData, uint seed,
     84      ILossFunction lossFunction, int iterations, int maxSize, double r, double m, double nu)
    7685      : base("Gradient boosted tree model", string.Empty) {
    7786      this.trainingProblemData = trainingProblemData;
     
    8695
    8796    // wrap an actual model in a surrograte
    88     public GradientBoostedTreesModelSurrogate(IRegressionProblemData trainingProblemData, uint seed, ILossFunction lossFunction, int iterations, int maxSize, double r, double m, double nu, IGradientBoostedTreesModel model)
     97    public GradientBoostedTreesModelSurrogate(IRegressionProblemData trainingProblemData, uint seed,
     98      ILossFunction lossFunction, int iterations, int maxSize, double r, double m, double nu,
     99      IGradientBoostedTreesModel model)
    89100      : this(trainingProblemData, seed, lossFunction, iterations, maxSize, r, m, nu) {
    90101      this.actualModel = model;
     
    104115      return new RegressionSolution(this, (IRegressionProblemData)problemData.Clone());
    105116    }
    106 
    107117
    108118    private IGradientBoostedTreesModel RecalculateModel() {
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/GradientBoostedTrees/RegressionTreeModel.cs

    r13895 r13921  
    3535  [Item("RegressionTreeModel", "Represents a decision tree for regression.")]
    3636  public sealed class RegressionTreeModel : NamedItem, IRegressionModel {
     37    public IEnumerable<string> VariablesUsedForPrediction {
     38      get { return Enumerable.Empty<string>(); }
     39    }
     40
     41    public string TargetVariable {
     42      get { return string.Empty; }
     43    }
    3744
    3845    // trees are represented as a flat array   
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/Linear/MultinomialLogitModel.cs

    r12509 r13921  
    4646        }
    4747      }
     48    }
     49
     50    public IEnumerable<string> VariablesUsedForPrediction {
     51      get { return allowedInputVariables; }
     52    }
     53
     54    public string TargetVariable {
     55      get { return targetVariable; }
    4856    }
    4957
     
    111119      return new MultinomialLogitClassificationSolution(new ClassificationProblemData(problemData), this);
    112120    }
     121
     122
     123
    113124    IClassificationSolution IClassificationModel.CreateClassificationSolution(IClassificationProblemData problemData) {
    114125      return CreateClassificationSolution(problemData);
     
    135146    }
    136147    #endregion
     148
    137149  }
    138150}
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/Nca/NcaModel.cs

    r12509 r13921  
    3131  [StorableClass]
    3232  public class NcaModel : NamedItem, INcaModel {
     33    public IEnumerable<string> VariablesUsedForPrediction {
     34      get { return allowedInputVariables; }
     35    }
     36
     37    public string TargetVariable {
     38      get { return targetVariable; }
     39    }
    3340
    3441    [Storable]
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/NearestNeighbour/NearestNeighbourModel.cs

    r12509 r13921  
    4646        }
    4747      }
     48    }
     49
     50    public IEnumerable<string> VariablesUsedForPrediction {
     51      get { return allowedInputVariables; }
     52    }
     53
     54    public string TargetVariable {
     55      get { return targetVariable; }
    4856    }
    4957
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/NeuralNetwork/NeuralNetworkEnsembleModel.cs

    r12509 r13921  
    4646        }
    4747      }
     48    }
     49
     50    public string TargetVariable {
     51      get { return targetVariable; }
     52    }
     53
     54    public IEnumerable<string> VariablesUsedForPrediction {
     55      get { return allowedInputVariables; }
    4856    }
    4957
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/NeuralNetwork/NeuralNetworkModel.cs

    r12817 r13921  
    4646        }
    4747      }
     48    }
     49
     50    public IEnumerable<string> VariablesUsedForPrediction {
     51      get { return allowedInputVariables; }
     52    }
     53
     54    public string TargetVariable {
     55      get { return targetVariable; }
    4856    }
    4957
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/RandomForest/RandomForestModel.cs

    r12509 r13921  
    4545    }
    4646
     47    public IEnumerable<string> VariablesUsedForPrediction {
     48      get { return originalTrainingData.AllowedInputVariables; }
     49    }
     50
     51    public string TargetVariable {
     52      get {
     53        var regressionProblemData = originalTrainingData as IRegressionProblemData;
     54        var classificationProblemData = originalTrainingData as IClassificationProblemData;
     55        if (classificationProblemData != null)
     56          return classificationProblemData.TargetVariable;
     57        if (regressionProblemData != null)
     58          return regressionProblemData.TargetVariable;
     59        throw new InvalidOperationException("Getting the target variable requires either a regression or a classification problem data.");
     60      }
     61    }
     62
    4763    // instead of storing the data of the model itself
    4864    // we instead only store data necessary to recalculate the same model lazily on demand
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/SupportVectorMachine/SupportVectorMachineModel.cs

    r12509 r13921  
    3838  [Item("SupportVectorMachineModel", "Represents a support vector machine model.")]
    3939  public sealed class SupportVectorMachineModel : NamedItem, ISupportVectorMachineModel {
     40    public IEnumerable<string> VariablesUsedForPrediction {
     41      get { return allowedInputVariables; }
     42    }
     43
     44    public string TargetVariable {
     45      get { return targetVariable; }
     46    }
    4047
    4148    private svm_model model;
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/kMeans/KMeansClusteringModel.cs

    r12509 r13921  
    3737    public static new Image StaticItemImage {
    3838      get { return HeuristicLab.Common.Resources.VSImageLibrary.Function; }
     39    }
     40
     41    public IEnumerable<string> VariablesUsedForPrediction {
     42      get { return allowedInputVariables; }
    3943    }
    4044
Note: See TracChangeset for help on using the changeset viewer.