Changeset 2356 for trunk/sources/HeuristicLab.LinearRegression
- Timestamp:
- 09/15/09 14:01:47 (16 years ago)
- Location:
- trunk/sources/HeuristicLab.LinearRegression/3.2
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/sources/HeuristicLab.LinearRegression/3.2/LinearClassification.cs ¶
r2353 r2356 38 38 39 39 namespace HeuristicLab.LinearRegression { 40 public class LinearClassification : LinearRegression {40 public class LinearClassification : LinearRegression, IClassificationAlgorithm { 41 41 42 42 public override string Name { get { return "LinearClassification"; } } … … 46 46 } 47 47 48 protected override IOperator CreateModelAnalyser() { 49 return DefaultClassificationAlgorithmOperators.CreatePostProcessingOperator(); 48 protected override IOperator CreateProblemInjector() { 49 return DefaultClassificationOperators.CreateProblemInjector(); 50 } 51 52 protected override IOperator CreateModelAnalyzerOperator() { 53 return DefaultClassificationOperators.CreatePostProcessingOperator(); 50 54 } 51 55 52 56 protected internal virtual IAnalyzerModel CreateLRModel(IScope bestModelScope) { 53 IAnalyzerModel model = base.CreateLRModel(bestModelScope);54 DefaultClassification AlgorithmOperators.SetModelData(model, bestModelScope);57 var model = new AnalyzerModel(); 58 DefaultClassificationOperators.PopulateAnalyzerModel(bestModelScope, model); 55 59 return model; 56 60 } -
TabularUnified trunk/sources/HeuristicLab.LinearRegression/3.2/LinearRegression.cs ¶
r2353 r2356 87 87 CombinedOperator algo = new CombinedOperator(); 88 88 SequentialProcessor seq = new SequentialProcessor(); 89 algo.Name = "LinearRegression"; 90 seq.Name = "LinearRegression"; 91 92 var randomInjector = new RandomInjector(); 93 randomInjector.Name = "Random Injector"; 89 algo.Name = Name; 90 seq.Name = Name; 91 94 92 IOperator globalInjector = CreateGlobalInjector(); 95 ProblemInjector problemInjector = new ProblemInjector(); 96 problemInjector.GetVariableInfo("MaxNumberOfTrainingSamples").Local = true; 97 problemInjector.AddVariable(new HeuristicLab.Core.Variable("MaxNumberOfTrainingSamples", new IntData(5000))); 98 99 HL2TreeEvaluatorInjector treeEvaluatorInjector = new HL2TreeEvaluatorInjector(); 100 101 IOperator shuffler = new DatasetShuffler(); 102 shuffler.GetVariableInfo("ShuffleStart").ActualName = "TrainingSamplesStart"; 103 shuffler.GetVariableInfo("ShuffleEnd").ActualName = "TrainingSamplesEnd"; 93 94 HL3TreeEvaluatorInjector treeEvaluatorInjector = new HL3TreeEvaluatorInjector(); 95 104 96 105 97 LinearRegressionOperator lrOperator = new LinearRegressionOperator(); … … 107 99 lrOperator.GetVariableInfo("SamplesEnd").ActualName = "ActualTrainingSamplesEnd"; 108 100 109 seq.AddSubOperator(randomInjector);110 seq.AddSubOperator(problemInjector);111 101 seq.AddSubOperator(globalInjector); 102 seq.AddSubOperator(new RandomInjector()); 103 seq.AddSubOperator(CreateProblemInjector()); 112 104 seq.AddSubOperator(treeEvaluatorInjector); 113 seq.AddSubOperator(shuffler);114 105 seq.AddSubOperator(lrOperator); 115 seq.AddSubOperator(Create ModelAnalyser());106 seq.AddSubOperator(CreatePostProcessingOperator()); 116 107 117 108 algo.OperatorGraph.InitialOperator = seq; … … 119 110 120 111 return algo; 112 } 113 114 protected virtual IOperator CreateProblemInjector() { 115 return DefaultRegressionOperators.CreateProblemInjector(); 121 116 } 122 117 … … 129 124 } 130 125 131 protected virtual IOperator Create ModelAnalyser() {126 protected virtual IOperator CreatePostProcessingOperator() { 132 127 CombinedOperator op = new CombinedOperator(); 133 op.AddVariableInfo(new VariableInfo("FunctionTree", "The model to analyze", typeof(IGeneticProgrammingModel), VariableKind.In));134 128 op.Name = "Model Analyzer"; 135 op.GetVariableInfo("FunctionTree").ActualName = "LinearRegressionModel"; 136 137 IOperator maOp = DefaultStructureIdentificationAlgorithmOperators.CreatePostProcessingOperator(); 138 op.OperatorGraph.AddOperator(maOp); 139 op.OperatorGraph.InitialOperator = maOp; 129 130 SequentialProcessor seq = new SequentialProcessor(); 131 HL3TreeEvaluatorInjector evaluatorInjector = new HL3TreeEvaluatorInjector(); 132 evaluatorInjector.AddVariable(new HeuristicLab.Core.Variable("PunishmentFactor", new DoubleData(1000.0))); 133 evaluatorInjector.GetVariableInfo("TreeEvaluator").ActualName = "ModelAnalysisTreeEvaluator"; 134 135 #region simple evaluators 136 SimpleEvaluator trainingEvaluator = new SimpleEvaluator(); 137 trainingEvaluator.Name = "TrainingEvaluator"; 138 trainingEvaluator.GetVariableInfo("FunctionTree").ActualName = "LinearRegressionModel"; 139 trainingEvaluator.GetVariableInfo("SamplesStart").ActualName = "TrainingSamplesStart"; 140 trainingEvaluator.GetVariableInfo("SamplesEnd").ActualName = "TrainingSamplesEnd"; 141 trainingEvaluator.GetVariableInfo("Values").ActualName = "TrainingValues"; 142 trainingEvaluator.GetVariableInfo("TreeEvaluator").ActualName = "ModelAnalysisTreeEvaluator"; 143 SimpleEvaluator validationEvaluator = new SimpleEvaluator(); 144 validationEvaluator.Name = "ValidationEvaluator"; 145 validationEvaluator.GetVariableInfo("FunctionTree").ActualName = "LinearRegressionModel"; 146 validationEvaluator.GetVariableInfo("SamplesStart").ActualName = "ValidationSamplesStart"; 147 validationEvaluator.GetVariableInfo("SamplesEnd").ActualName = "ValidationSamplesEnd"; 148 validationEvaluator.GetVariableInfo("Values").ActualName = "ValidationValues"; 149 validationEvaluator.GetVariableInfo("TreeEvaluator").ActualName = "ModelAnalysisTreeEvaluator"; 150 SimpleEvaluator testEvaluator = new SimpleEvaluator(); 151 testEvaluator.Name = "TestEvaluator"; 152 testEvaluator.GetVariableInfo("FunctionTree").ActualName = "LinearRegressionModel"; 153 testEvaluator.GetVariableInfo("SamplesStart").ActualName = "TestSamplesStart"; 154 testEvaluator.GetVariableInfo("SamplesEnd").ActualName = "TestSamplesEnd"; 155 testEvaluator.GetVariableInfo("Values").ActualName = "TestValues"; 156 testEvaluator.GetVariableInfo("TreeEvaluator").ActualName = "ModelAnalysisTreeEvaluator"; 157 seq.AddSubOperator(evaluatorInjector); 158 seq.AddSubOperator(trainingEvaluator); 159 seq.AddSubOperator(validationEvaluator); 160 seq.AddSubOperator(testEvaluator); 161 #endregion 162 163 #region variable impacts 164 // calculate and set variable impacts 165 VariableNamesExtractor namesExtractor = new VariableNamesExtractor(); 166 namesExtractor.GetVariableInfo("VariableNames").ActualName = "InputVariableNames"; 167 namesExtractor.GetVariableInfo("FunctionTree").ActualName = "LinearRegressionModel"; 168 169 PredictorBuilder predictorBuilder = new PredictorBuilder(); 170 predictorBuilder.GetVariableInfo("TreeEvaluator").ActualName = "ModelAnalysisTreeEvaluator"; 171 predictorBuilder.GetVariableInfo("FunctionTree").ActualName = "LinearRegressionModel"; 172 173 seq.AddSubOperator(namesExtractor); 174 seq.AddSubOperator(predictorBuilder); 175 #endregion 176 177 seq.AddSubOperator(CreateModelAnalyzerOperator()); 178 179 op.OperatorGraph.AddOperator(seq); 180 op.OperatorGraph.InitialOperator = seq; 140 181 return op; 141 182 } 142 183 184 protected virtual IOperator CreateModelAnalyzerOperator() { 185 return DefaultRegressionOperators.CreatePostProcessingOperator(); 186 } 187 143 188 protected virtual IAnalyzerModel CreateLRModel(IScope bestModelScope) { 144 return DefaultStructureIdentificationAlgorithmOperators.CreateGPModel(bestModelScope); 189 var model = new AnalyzerModel(); 190 DefaultRegressionOperators.PopulateAnalyzerModel(bestModelScope, model); 191 return model; 145 192 } 146 193
Note: See TracChangeset
for help on using the changeset viewer.