Changeset 16847 for branches/2847_M5Regression/HeuristicLab.Algorithms.DataAnalysis/3.4/M5Regression/LeafTypes/LeafBase.cs
- Timestamp:
- 04/19/19 13:06:11 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2847_M5Regression/HeuristicLab.Algorithms.DataAnalysis/3.4/M5Regression/LeafTypes/LeafBase.cs
r15967 r16847 20 20 #endregion 21 21 22 using System;23 22 using System.Collections.Generic; 24 23 using System.Linq; … … 28 27 using HeuristicLab.Data; 29 28 using HeuristicLab.Parameters; 30 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;31 29 using HeuristicLab.Problems.DataAnalysis; 30 using HEAL.Attic; 32 31 33 32 namespace HeuristicLab.Algorithms.DataAnalysis { 34 [Storable Class]33 [StorableType("F3A9CCD4-975F-4F55-BE24-3A3E932591F6")] 35 34 public abstract class LeafBase : ParameterizedNamedItem, ILeafModel { 36 35 public const string LeafBuildingStateVariableName = "LeafBuildingState"; 37 36 public const string UseDampeningParameterName = "UseDampening"; 38 p rivate const string DampeningParameterName = "DampeningStrenght";37 public const string DampeningParameterName = "DampeningStrength"; 39 38 40 39 public IFixedValueParameter<DoubleValue> DampeningParameter { 41 get { return Parameters[DampeningParameterName] as IFixedValueParameter<DoubleValue>; }40 get { return (IFixedValueParameter<DoubleValue>)Parameters[DampeningParameterName]; } 42 41 } 43 42 public IFixedValueParameter<BoolValue> UseDampeningParameter { … … 47 46 public bool UseDampening { 48 47 get { return UseDampeningParameter.Value.Value; } 48 set { UseDampeningParameter.Value.Value = value; } 49 49 } 50 50 public double Dampening { 51 51 get { return DampeningParameter.Value.Value; } 52 set { DampeningParameter.Value.Value = value; } 52 53 } 53 54 54 55 #region Constructors & Cloning 55 56 [StorableConstructor] 56 protected LeafBase( bool deserializing) : base(deserializing) { }57 protected LeafBase(StorableConstructorFlag _) : base(_) { } 57 58 protected LeafBase(LeafBase original, Cloner cloner) : base(original, cloner) { } 58 59 protected LeafBase() { 59 Parameters.Add(new FixedValueParameter<BoolValue>(UseDampeningParameterName, "Whether logistic dampening should be used to prevent extreme extrapolation ", new BoolValue(false)));60 Parameters.Add(new FixedValueParameter<DoubleValue>(DampeningParameterName, "Determines the streng ht of the logistic dampening. Must be > 0.0. Larger numbers make more conservative predictions.", new DoubleValue(1.5)));60 Parameters.Add(new FixedValueParameter<BoolValue>(UseDampeningParameterName, "Whether logistic dampening should be used to prevent extreme extrapolation (default=false)", new BoolValue(false))); 61 Parameters.Add(new FixedValueParameter<DoubleValue>(DampeningParameterName, "Determines the strength of logistic dampening. Must be > 0.0. Larger numbers lead to more conservative predictions. (default=1.5)", new DoubleValue(1.5))); 61 62 } 62 63 #endregion … … 65 66 public abstract bool ProvidesConfidence { get; } 66 67 public abstract int MinLeafSize(IRegressionProblemData pd); 68 67 69 public void Initialize(IScope states) { 68 70 states.Variables.Add(new Variable(LeafBuildingStateVariableName, new LeafBuildingState())); 69 71 } 72 70 73 public void Build(RegressionNodeTreeModel tree, IReadOnlyList<int> trainingRows, IScope stateScope, CancellationToken cancellationToken) { 71 74 var parameters = (RegressionTreeParameters)stateScope.Variables[M5Regression.RegressionTreeParameterVariableName].Value; … … 86 89 } 87 90 88 public IRegressionModel BuildModel(IReadOnlyList<int> rows, RegressionTreeParameters parameters, CancellationToken cancellation, out int num Params) {91 public IRegressionModel BuildModel(IReadOnlyList<int> rows, RegressionTreeParameters parameters, CancellationToken cancellation, out int numberOfParameters) { 89 92 var reducedData = RegressionTreeUtilities.ReduceDataset(parameters.Data, rows, parameters.AllowedInputVariables.ToArray(), parameters.TargetVariable); 90 93 var pd = new RegressionProblemData(reducedData, parameters.AllowedInputVariables.ToArray(), parameters.TargetVariable); … … 98 101 } 99 102 100 num Params = numP;103 numberOfParameters = numP; 101 104 cancellation.ThrowIfCancellationRequested(); 102 105 return model; 103 106 } 104 107 105 public abstract IRegressionModel Build(IRegressionProblemData pd, IRandom random, CancellationToken cancellationToken, out int n oParameters);108 public abstract IRegressionModel Build(IRegressionProblemData pd, IRandom random, CancellationToken cancellationToken, out int numberOfParameters); 106 109 #endregion 107 110 108 [Storable Class]111 [StorableType("495243C0-6C15-4328-B30D-FFBFA0F54DCB")] 109 112 public class LeafBuildingState : Item { 110 113 [Storable] … … 115 118 //State.Code values denote the current action (for pausing) 116 119 //0...nothing has been done; 117 //1...building Models;120 //1...building models; 118 121 [Storable] 119 122 public int Code = 0; … … 121 124 #region HLConstructors & Cloning 122 125 [StorableConstructor] 123 protected LeafBuildingState( bool deserializing) : base(deserializing) { }126 protected LeafBuildingState(StorableConstructorFlag _) : base(_) { } 124 127 protected LeafBuildingState(LeafBuildingState original, Cloner cloner) : base(original, cloner) { 125 128 nodeQueue = new Queue<RegressionNodeModel>(original.nodeQueue.Select(cloner.Clone));
Note: See TracChangeset
for help on using the changeset viewer.