Changeset 13921
- Timestamp:
- 06/19/16 19:56:11 (8 years ago)
- Location:
- trunk/sources
- Files:
-
- 28 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/BaselineClassifiers/OneRClassificationModel.cs
r13098 r13921 32 32 [Item("OneR Classification Model", "A model that uses intervals for one variable to determine the class.")] 33 33 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 34 42 [Storable] 35 43 protected string variable; -
trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/GaussianProcess/GaussianProcessModel.cs
r13784 r13921 35 35 [Item("GaussianProcessModel", "Represents a Gaussian process posterior.")] 36 36 public sealed class GaussianProcessModel : NamedItem, IGaussianProcessModel { 37 public IEnumerable<string> VariablesUsedForPrediction { get; } 38 37 39 [Storable] 38 40 private double negativeLogLikelihood; … … 392 394 } 393 395 } 396 394 397 } 395 398 } -
trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/GaussianProcess/StudentTProcessModel.cs
r13784 r13921 35 35 [Item("StudentTProcessModel", "Represents a Student-t process posterior.")] 36 36 public sealed class StudentTProcessModel : NamedItem, IGaussianProcessModel { 37 public IEnumerable<string> VariablesUsedForPrediction { 38 get { return allowedInputVariables; } 39 } 40 37 41 [Storable] 38 42 private double negativeLogLikelihood; -
trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/GradientBoostedTrees/GradientBoostedTreesModel.cs
r13157 r13921 58 58 #endregion 59 59 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 60 68 private readonly IList<IRegressionModel> models; 61 69 public IEnumerable<IRegressionModel> Models { get { return models; } } … … 108 116 return new RegressionSolution(this, (IRegressionProblemData)problemData.Clone()); 109 117 } 118 110 119 } 111 120 } -
trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/GradientBoostedTrees/GradientBoostedTreesModelSurrogate.cs
r13157 r13921 22 22 23 23 using System.Collections.Generic; 24 using System.Linq; 24 25 using HeuristicLab.Common; 25 26 using HeuristicLab.Core; … … 54 55 private int maxSize; 55 56 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 } 56 64 57 65 [StorableConstructor] … … 73 81 74 82 // 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) 76 85 : base("Gradient boosted tree model", string.Empty) { 77 86 this.trainingProblemData = trainingProblemData; … … 86 95 87 96 // 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) 89 100 : this(trainingProblemData, seed, lossFunction, iterations, maxSize, r, m, nu) { 90 101 this.actualModel = model; … … 104 115 return new RegressionSolution(this, (IRegressionProblemData)problemData.Clone()); 105 116 } 106 107 117 108 118 private IGradientBoostedTreesModel RecalculateModel() { -
trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/GradientBoostedTrees/RegressionTreeModel.cs
r13895 r13921 35 35 [Item("RegressionTreeModel", "Represents a decision tree for regression.")] 36 36 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 } 37 44 38 45 // trees are represented as a flat array -
trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/Linear/MultinomialLogitModel.cs
r12509 r13921 46 46 } 47 47 } 48 } 49 50 public IEnumerable<string> VariablesUsedForPrediction { 51 get { return allowedInputVariables; } 52 } 53 54 public string TargetVariable { 55 get { return targetVariable; } 48 56 } 49 57 … … 111 119 return new MultinomialLogitClassificationSolution(new ClassificationProblemData(problemData), this); 112 120 } 121 122 123 113 124 IClassificationSolution IClassificationModel.CreateClassificationSolution(IClassificationProblemData problemData) { 114 125 return CreateClassificationSolution(problemData); … … 135 146 } 136 147 #endregion 148 137 149 } 138 150 } -
trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/Nca/NcaModel.cs
r12509 r13921 31 31 [StorableClass] 32 32 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 } 33 40 34 41 [Storable] -
trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/NearestNeighbour/NearestNeighbourModel.cs
r12509 r13921 46 46 } 47 47 } 48 } 49 50 public IEnumerable<string> VariablesUsedForPrediction { 51 get { return allowedInputVariables; } 52 } 53 54 public string TargetVariable { 55 get { return targetVariable; } 48 56 } 49 57 -
trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/NeuralNetwork/NeuralNetworkEnsembleModel.cs
r12509 r13921 46 46 } 47 47 } 48 } 49 50 public string TargetVariable { 51 get { return targetVariable; } 52 } 53 54 public IEnumerable<string> VariablesUsedForPrediction { 55 get { return allowedInputVariables; } 48 56 } 49 57 -
trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/NeuralNetwork/NeuralNetworkModel.cs
r12817 r13921 46 46 } 47 47 } 48 } 49 50 public IEnumerable<string> VariablesUsedForPrediction { 51 get { return allowedInputVariables; } 52 } 53 54 public string TargetVariable { 55 get { return targetVariable; } 48 56 } 49 57 -
trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/RandomForest/RandomForestModel.cs
r12509 r13921 45 45 } 46 46 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 47 63 // instead of storing the data of the model itself 48 64 // 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 38 38 [Item("SupportVectorMachineModel", "Represents a support vector machine model.")] 39 39 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 } 40 47 41 48 private svm_model model; -
trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/kMeans/KMeansClusteringModel.cs
r12509 r13921 37 37 public static new Image StaticItemImage { 38 38 get { return HeuristicLab.Common.Resources.VSImageLibrary.Function; } 39 } 40 41 public IEnumerable<string> VariablesUsedForPrediction { 42 get { return allowedInputVariables; } 39 43 } 40 44 -
trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SymbolicClassificationModel.cs
r12509 r13921 33 33 [Item(Name = "SymbolicClassificationModel", Description = "Represents a symbolic classification model.")] 34 34 public abstract class SymbolicClassificationModel : SymbolicDataAnalysisModel, ISymbolicClassificationModel { 35 [Storable] 36 private readonly string targetVariable; 37 public string TargetVariable { 38 get { return targetVariable; } 39 } 35 40 36 41 [StorableConstructor] 37 42 protected SymbolicClassificationModel(bool deserializing) : base(deserializing) { } 38 protected SymbolicClassificationModel(SymbolicClassificationModel original, Cloner cloner) : base(original, cloner) { } 43 44 protected SymbolicClassificationModel(SymbolicClassificationModel original, Cloner cloner) : base(original, cloner) { 45 targetVariable = original.targetVariable; 46 } 47 39 48 protected SymbolicClassificationModel(ISymbolicExpressionTree tree, ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, 40 double lowerEstimationLimit = double.MinValue, double upperEstimationLimit = double.MaxValue) 41 : base(tree, interpreter, lowerEstimationLimit, upperEstimationLimit) { } 49 double lowerEstimationLimit = double.MinValue, double upperEstimationLimit = double.MaxValue, string targetVariable = "Target") 50 : base(tree, interpreter, lowerEstimationLimit, upperEstimationLimit) { 51 this.targetVariable = targetVariable; 52 } 42 53 43 54 public abstract IEnumerable<double> GetEstimatedClassValues(IDataset dataset, IEnumerable<int> rows); -
trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SymbolicRegressionModel.cs
r12509 r13921 33 33 [Item(Name = "Symbolic Regression Model", Description = "Represents a symbolic regression model.")] 34 34 public class SymbolicRegressionModel : SymbolicDataAnalysisModel, ISymbolicRegressionModel { 35 35 [Storable] 36 private readonly string targetVariable; 37 public string TargetVariable { 38 get { return targetVariable; } 39 } 36 40 37 41 [StorableConstructor] 38 42 protected SymbolicRegressionModel(bool deserializing) : base(deserializing) { } 39 protected SymbolicRegressionModel(SymbolicRegressionModel original, Cloner cloner) : base(original, cloner) { }40 43 41 public SymbolicRegressionModel(ISymbolicExpressionTree tree, ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, 42 double lowerEstimationLimit = double.MinValue, double upperEstimationLimit = double.MaxValue) 43 : base(tree, interpreter, lowerEstimationLimit, upperEstimationLimit) { } 44 protected SymbolicRegressionModel(SymbolicRegressionModel original, Cloner cloner) : base(original, cloner) { 45 this.targetVariable = original.targetVariable; 46 } 47 48 public SymbolicRegressionModel(ISymbolicExpressionTree tree, 49 ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, 50 double lowerEstimationLimit = double.MinValue, double upperEstimationLimit = double.MaxValue, 51 string targetVariable = "Target") 52 : base(tree, interpreter, lowerEstimationLimit, upperEstimationLimit) { 53 this.targetVariable = targetVariable; 54 } 44 55 45 56 public override IDeepCloneable Clone(Cloner cloner) { -
trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisModel.cs
r12012 r13921 21 21 22 22 using System; 23 using System.Collections.Generic; 23 24 using System.Drawing; 25 using System.Linq; 24 26 using HeuristicLab.Common; 25 27 using HeuristicLab.Core; … … 56 58 get { return interpreter; } 57 59 } 60 61 public IEnumerable<string> VariablesUsedForPrediction { 62 get { 63 return 64 SymbolicExpressionTree.IterateNodesPrefix() 65 .OfType<VariableTreeNode>() 66 .Select(x => x.VariableName) 67 .Distinct() 68 .OrderBy(x => x); 69 } 70 } 71 58 72 #endregion 59 73 … … 160 174 } 161 175 #endregion 176 162 177 } 163 178 } -
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationEnsembleModel.cs
r12509 r13921 33 33 [Item("ClassificationEnsembleModel", "A classification model that contains an ensemble of multiple classification models")] 34 34 public class ClassificationEnsembleModel : NamedItem, IClassificationEnsembleModel { 35 public IEnumerable<string> VariablesUsedForPrediction { 36 get { return models.SelectMany(x => x.VariablesUsedForPrediction).Distinct().OrderBy(x => x); } 37 } 38 39 public string TargetVariable { 40 get { return models.First().TargetVariable; } 41 } 35 42 36 43 [Storable] -
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/DiscriminantFunctionClassificationModel.cs
r12509 r13921 34 34 [Item("DiscriminantFunctionClassificationModel", "Represents a classification model that uses a discriminant function and classification thresholds.")] 35 35 public class DiscriminantFunctionClassificationModel : NamedItem, IDiscriminantFunctionClassificationModel { 36 public IEnumerable<string> VariablesUsedForPrediction { 37 get { return model.VariablesUsedForPrediction; } 38 } 39 40 public string TargetVariable { get { return model.TargetVariable; } } 41 36 42 [Storable] 37 43 private IRegressionModel model; -
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/ConstantModel.cs
r13154 r13921 32 32 [Item("Constant Model", "A model that always returns the same constant value regardless of the presented input data.")] 33 33 public class ConstantModel : NamedItem, IRegressionModel, IClassificationModel, ITimeSeriesPrognosisModel, IStringConvertibleValue { 34 public IEnumerable<string> VariablesUsedForPrediction { get { return Enumerable.Empty<string>(); } } 35 34 36 [Storable] 35 private double constant; 37 private readonly string targetVariable; 38 public string TargetVariable { 39 get { return targetVariable; } 40 } 41 42 [Storable] 43 private readonly double constant; 36 44 public double Constant { 37 45 get { return constant; } … … 44 52 : base(original, cloner) { 45 53 this.constant = original.constant; 54 this.targetVariable = original.targetVariable; 46 55 } 56 47 57 public override IDeepCloneable Clone(Cloner cloner) { return new ConstantModel(this, cloner); } 48 58 49 public ConstantModel(double constant )59 public ConstantModel(double constant, string targetVariable = "Target") 50 60 : base() { 51 61 this.name = ItemName; … … 53 63 this.constant = constant; 54 64 this.ReadOnly = true; // changing a constant regression model is not supported 65 this.targetVariable = targetVariable; 55 66 } 56 67 -
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/DataAnalysisSolution.cs
r13826 r13921 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 6Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. … … 111 111 protected override void DeregisterItemEvents(IEnumerable<IResult> items) { } 112 112 113 public virtual IEnumerable<string> GetUsedVariablesForPrediction() {114 return this.ProblemData.AllowedInputVariables;115 }116 117 113 #region INamedItem Members 118 114 [Storable] -
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/ConstantRegressionModel.cs
r13100 r13921 33 33 [Obsolete] 34 34 public class ConstantRegressionModel : NamedItem, IRegressionModel, IStringConvertibleValue { 35 public IEnumerable<string> VariablesUsedForPrediction { get { return Enumerable.Empty<string>(); } } 36 37 [Storable] 38 private readonly string targetVariable; 39 public string TargetVariable { 40 get { return targetVariable; } 41 } 42 35 43 [Storable] 36 44 private double constant; … … 45 53 : base(original, cloner) { 46 54 this.constant = original.constant; 55 this.targetVariable = original.targetVariable; 47 56 } 57 48 58 public override IDeepCloneable Clone(Cloner cloner) { return new ConstantRegressionModel(this, cloner); } 49 59 50 public ConstantRegressionModel(double constant )60 public ConstantRegressionModel(double constant, string targetVariable = "Target") 51 61 : base() { 52 62 this.name = ItemName; … … 54 64 this.constant = constant; 55 65 this.ReadOnly = true; // changing a constant regression model is not supported 66 this.targetVariable = targetVariable; 56 67 } 57 68 -
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionEnsembleModel.cs
r13715 r13921 34 34 [Item("RegressionEnsembleModel", "A regression model that contains an ensemble of multiple regression models")] 35 35 public sealed class RegressionEnsembleModel : NamedItem, IRegressionEnsembleModel { 36 public IEnumerable<string> VariablesUsedForPrediction { 37 get { return models.SelectMany(x => x.VariablesUsedForPrediction).Distinct().OrderBy(x => x); } 38 } 36 39 37 40 private List<IRegressionModel> models; 38 41 public IEnumerable<IRegressionModel> Models { 39 42 get { return new List<IRegressionModel>(models); } 43 } 44 45 [Storable] 46 private readonly string target; 47 public string TargetVariable { 48 get { return models.First().TargetVariable; } 40 49 } 41 50 -
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/Models/TimeSeriesPrognosisAutoRegressiveModel.cs
r12509 r13921 31 31 [Item("Autoregressive TimeSeries Model", "A linear autoregressive time series model used to predict future values.")] 32 32 public class TimeSeriesPrognosisAutoRegressiveModel : NamedItem, ITimeSeriesPrognosisModel { 33 public IEnumerable<string> VariablesUsedForPrediction { 34 get { return Enumerable.Empty<string>(); } // what to return here? 35 } 36 33 37 [Storable] 34 38 public double[] Phi { get; private set; } -
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/Classification/IClassificationModel.cs
r12509 r13921 25 25 IEnumerable<double> GetEstimatedClassValues(IDataset dataset, IEnumerable<int> rows); 26 26 IClassificationSolution CreateClassificationSolution(IClassificationProblemData problemData); 27 string TargetVariable { get; } 27 28 } 28 29 } -
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/IDataAnalysisModel.cs
r12012 r13921 20 20 #endregion 21 21 22 using System.Collections.Generic; 22 23 using HeuristicLab.Core; 23 24 24 25 namespace HeuristicLab.Problems.DataAnalysis { 25 26 public interface IDataAnalysisModel : INamedItem { 27 IEnumerable<string> VariablesUsedForPrediction { get; } 26 28 } 27 29 } -
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/IDataAnalysisSolution.cs
r13826 r13921 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 6Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. … … 21 21 22 22 using System; 23 using System.Collections.Generic;24 23 using HeuristicLab.Common; 25 24 using HeuristicLab.Core; … … 29 28 IDataAnalysisModel Model { get; } 30 29 IDataAnalysisProblemData ProblemData { get; set; } 31 IEnumerable<string> GetUsedVariablesForPrediction();32 30 33 31 event EventHandler ModelChanged; -
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/Regression/IRegressionModel.cs
r12509 r13921 25 25 IEnumerable<double> GetEstimatedValues(IDataset dataset, IEnumerable<int> rows); 26 26 IRegressionSolution CreateRegressionSolution(IRegressionProblemData problemData); 27 string TargetVariable { get; } 27 28 } 28 29 }
Note: See TracChangeset
for help on using the changeset viewer.