- Timestamp:
- 09/24/09 16:52:24 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Modeling/3.2/DefaultRegressionOperators.cs
r2379 r2388 44 44 45 45 public static IOperator CreatePostProcessingOperator() { 46 CombinedOperator op = new CombinedOperator(); 47 op.Name = "Regression model analyser"; 48 SequentialProcessor seq = new SequentialProcessor(); 49 #region MSE 50 SimpleMSEEvaluator trainingMseEvaluator = new SimpleMSEEvaluator(); 51 trainingMseEvaluator.Name = "TrainingMseEvaluator"; 52 trainingMseEvaluator.GetVariableInfo("MSE").ActualName = ModelingResult.TrainingMeanSquaredError.ToString(); 53 trainingMseEvaluator.GetVariableInfo("Values").ActualName = "TrainingValues"; 54 SimpleMSEEvaluator validationMseEvaluator = new SimpleMSEEvaluator(); 55 validationMseEvaluator.Name = "ValidationMseEvaluator"; 56 validationMseEvaluator.GetVariableInfo("MSE").ActualName = ModelingResult.ValidationMeanSquaredError.ToString(); 57 validationMseEvaluator.GetVariableInfo("Values").ActualName = "ValidationValues"; 58 SimpleMSEEvaluator testMseEvaluator = new SimpleMSEEvaluator(); 59 testMseEvaluator.Name = "TestMseEvaluator"; 60 testMseEvaluator.GetVariableInfo("MSE").ActualName = ModelingResult.TestMeanSquaredError.ToString(); 61 testMseEvaluator.GetVariableInfo("Values").ActualName = "TestValues"; 62 #endregion 63 #region NMSE 64 SimpleNMSEEvaluator trainingNmseEvaluator = new SimpleNMSEEvaluator(); 65 trainingNmseEvaluator.Name = "TrainingNmseEvaluator"; 66 trainingNmseEvaluator.GetVariableInfo("NMSE").ActualName = ModelingResult.TrainingNormalizedMeanSquaredError.ToString(); 67 trainingNmseEvaluator.GetVariableInfo("Values").ActualName = "TrainingValues"; 68 SimpleNMSEEvaluator validationNmseEvaluator = new SimpleNMSEEvaluator(); 69 validationNmseEvaluator.Name = "ValidationMseEvaluator"; 70 validationNmseEvaluator.GetVariableInfo("NMSE").ActualName = ModelingResult.ValidationNormalizedMeanSquaredError.ToString(); 71 validationNmseEvaluator.GetVariableInfo("Values").ActualName = "ValidationValues"; 72 SimpleNMSEEvaluator testNmseEvaluator = new SimpleNMSEEvaluator(); 73 testNmseEvaluator.Name = "TestNmseEvaluator"; 74 testNmseEvaluator.GetVariableInfo("NMSE").ActualName = ModelingResult.TestNormalizedMeanSquaredError.ToString(); 75 testNmseEvaluator.GetVariableInfo("Values").ActualName = "TestValues"; 76 #endregion 77 #region MAPE 78 SimpleMeanAbsolutePercentageErrorEvaluator trainingMapeEvaluator = new SimpleMeanAbsolutePercentageErrorEvaluator(); 79 trainingMapeEvaluator.Name = "TrainingMapeEvaluator"; 80 trainingMapeEvaluator.GetVariableInfo("MAPE").ActualName = ModelingResult.TrainingMeanAbsolutePercentageError.ToString(); 81 trainingMapeEvaluator.GetVariableInfo("Values").ActualName = "TrainingValues"; 82 SimpleMeanAbsolutePercentageErrorEvaluator validationMapeEvaluator = new SimpleMeanAbsolutePercentageErrorEvaluator(); 83 validationMapeEvaluator.Name = "ValidationMapeEvaluator"; 84 validationMapeEvaluator.GetVariableInfo("MAPE").ActualName = ModelingResult.ValidationMeanAbsolutePercentageError.ToString(); 85 validationMapeEvaluator.GetVariableInfo("Values").ActualName = "ValidationValues"; 86 SimpleMeanAbsolutePercentageErrorEvaluator testMapeEvaluator = new SimpleMeanAbsolutePercentageErrorEvaluator(); 87 testMapeEvaluator.Name = "TestMapeEvaluator"; 88 testMapeEvaluator.GetVariableInfo("MAPE").ActualName = ModelingResult.TestMeanAbsolutePercentageError.ToString(); 89 testMapeEvaluator.GetVariableInfo("Values").ActualName = "TestValues"; 90 #endregion 91 #region MAPRE 92 SimpleMeanAbsolutePercentageOfRangeErrorEvaluator trainingMapreEvaluator = new SimpleMeanAbsolutePercentageOfRangeErrorEvaluator(); 93 trainingMapreEvaluator.Name = "TrainingMapreEvaluator"; 94 trainingMapreEvaluator.GetVariableInfo("MAPRE").ActualName = ModelingResult.TrainingMeanAbsolutePercentageOfRangeError.ToString(); 95 trainingMapreEvaluator.GetVariableInfo("Values").ActualName = "TrainingValues"; 96 SimpleMeanAbsolutePercentageOfRangeErrorEvaluator validationMapreEvaluator = new SimpleMeanAbsolutePercentageOfRangeErrorEvaluator(); 97 validationMapreEvaluator.Name = "ValidationMapreEvaluator"; 98 validationMapreEvaluator.GetVariableInfo("MAPRE").ActualName = ModelingResult.ValidationMeanAbsolutePercentageOfRangeError.ToString(); 99 validationMapreEvaluator.GetVariableInfo("Values").ActualName = "ValidationValues"; 100 SimpleMeanAbsolutePercentageOfRangeErrorEvaluator testMapreEvaluator = new SimpleMeanAbsolutePercentageOfRangeErrorEvaluator(); 101 testMapreEvaluator.Name = "TestMapreEvaluator"; 102 testMapreEvaluator.GetVariableInfo("MAPRE").ActualName = ModelingResult.TestMeanAbsolutePercentageOfRangeError.ToString(); 103 testMapreEvaluator.GetVariableInfo("Values").ActualName = "TestValues"; 104 #endregion MAPRE 105 #region R2 106 SimpleR2Evaluator trainingR2Evaluator = new SimpleR2Evaluator(); 107 trainingR2Evaluator.Name = "TrainingR2Evaluator"; 108 trainingR2Evaluator.GetVariableInfo("R2").ActualName = ModelingResult.TrainingCoefficientOfDetermination.ToString(); 109 trainingR2Evaluator.GetVariableInfo("Values").ActualName = "TrainingValues"; 110 SimpleR2Evaluator validationR2Evaluator = new SimpleR2Evaluator(); 111 validationR2Evaluator.Name = "ValidationR2Evaluator"; 112 validationR2Evaluator.GetVariableInfo("R2").ActualName = ModelingResult.ValidationCoefficientOfDetermination.ToString(); 113 validationR2Evaluator.GetVariableInfo("Values").ActualName = "ValidationValues"; 114 SimpleR2Evaluator testR2Evaluator = new SimpleR2Evaluator(); 115 testR2Evaluator.Name = "TestR2Evaluator"; 116 testR2Evaluator.GetVariableInfo("R2").ActualName = ModelingResult.TestCoefficientOfDetermination.ToString(); 117 testR2Evaluator.GetVariableInfo("Values").ActualName = "TestValues"; 118 #endregion 119 #region VAF 120 SimpleVarianceAccountedForEvaluator trainingVAFEvaluator = new SimpleVarianceAccountedForEvaluator(); 121 trainingVAFEvaluator.Name = "TrainingVAFEvaluator"; 122 trainingVAFEvaluator.GetVariableInfo("VAF").ActualName = ModelingResult.TrainingVarianceAccountedFor.ToString(); 123 trainingVAFEvaluator.GetVariableInfo("Values").ActualName = "TrainingValues"; 124 SimpleVarianceAccountedForEvaluator validationVAFEvaluator = new SimpleVarianceAccountedForEvaluator(); 125 validationVAFEvaluator.Name = "ValidationVAFEvaluator"; 126 validationVAFEvaluator.GetVariableInfo("VAF").ActualName = ModelingResult.ValidationVarianceAccountedFor.ToString(); 127 validationVAFEvaluator.GetVariableInfo("Values").ActualName = "ValidationValues"; 128 SimpleVarianceAccountedForEvaluator testVAFEvaluator = new SimpleVarianceAccountedForEvaluator(); 129 testVAFEvaluator.Name = "TestVAFEvaluator"; 130 testVAFEvaluator.GetVariableInfo("VAF").ActualName = ModelingResult.TestVarianceAccountedFor.ToString(); 131 testVAFEvaluator.GetVariableInfo("Values").ActualName = "TestValues"; 132 #endregion 133 134 seq.AddSubOperator(trainingMseEvaluator); 135 seq.AddSubOperator(validationMseEvaluator); 136 seq.AddSubOperator(testMseEvaluator); 137 seq.AddSubOperator(trainingNmseEvaluator); 138 seq.AddSubOperator(validationNmseEvaluator); 139 seq.AddSubOperator(testNmseEvaluator); 140 seq.AddSubOperator(trainingMapeEvaluator); 141 seq.AddSubOperator(validationMapeEvaluator); 142 seq.AddSubOperator(testMapeEvaluator); 143 seq.AddSubOperator(trainingMapreEvaluator); 144 seq.AddSubOperator(validationMapreEvaluator); 145 seq.AddSubOperator(testMapreEvaluator); 146 seq.AddSubOperator(trainingR2Evaluator); 147 seq.AddSubOperator(validationR2Evaluator); 148 seq.AddSubOperator(testR2Evaluator); 149 seq.AddSubOperator(trainingVAFEvaluator); 150 seq.AddSubOperator(validationVAFEvaluator); 151 seq.AddSubOperator(testVAFEvaluator); 152 153 #region variable impacts 154 VariableEvaluationImpactCalculator evaluationImpactCalculator = new VariableEvaluationImpactCalculator(); 155 evaluationImpactCalculator.GetVariableInfo("SamplesStart").ActualName = "TrainingSamplesStart"; 156 evaluationImpactCalculator.GetVariableInfo("SamplesEnd").ActualName = "TrainingSamplesEnd"; 157 VariableQualityImpactCalculator qualityImpactCalculator = new VariableQualityImpactCalculator(); 158 qualityImpactCalculator.GetVariableInfo("SamplesStart").ActualName = "TrainingSamplesStart"; 159 qualityImpactCalculator.GetVariableInfo("SamplesEnd").ActualName = "TrainingSamplesEnd"; 160 161 seq.AddSubOperator(evaluationImpactCalculator); 162 seq.AddSubOperator(qualityImpactCalculator); 163 #endregion 164 165 op.OperatorGraph.AddOperator(seq); 166 op.OperatorGraph.InitialOperator = seq; 167 return op; 46 return DefaultModelAnalyzerOperators.CreatePostProcessingOperator(ModelType.Regression); 168 47 } 169 48 170 49 public static IAnalyzerModel PopulateAnalyzerModel(IScope modelScope, IAnalyzerModel model) { 171 model.Predictor = modelScope.GetVariableValue<IPredictor>("Predictor", false); 172 Dataset ds = modelScope.GetVariableValue<Dataset>("Dataset", true); 173 model.Dataset = ds; 174 model.TargetVariable = ds.GetVariableName(modelScope.GetVariableValue<IntData>("TargetVariable", true).Data); 175 model.Type = ModelType.Regression; 176 model.TrainingSamplesStart = modelScope.GetVariableValue<IntData>("TrainingSamplesStart", true).Data; 177 model.TrainingSamplesEnd = modelScope.GetVariableValue<IntData>("TrainingSamplesEnd", true).Data; 178 model.ValidationSamplesStart = modelScope.GetVariableValue<IntData>("ValidationSamplesStart", true).Data; 179 model.ValidationSamplesEnd = modelScope.GetVariableValue<IntData>("ValidationSamplesEnd", true).Data; 180 model.TestSamplesStart = modelScope.GetVariableValue<IntData>("TestSamplesStart", true).Data; 181 model.TestSamplesEnd = modelScope.GetVariableValue<IntData>("TestSamplesEnd", true).Data; 182 183 model.ExtractResult(modelScope, ModelingResult.TrainingMeanSquaredError); 184 model.ExtractResult(modelScope, ModelingResult.ValidationMeanSquaredError); 185 model.ExtractResult(modelScope, ModelingResult.TestMeanSquaredError); 186 model.ExtractResult(modelScope, ModelingResult.TrainingNormalizedMeanSquaredError); 187 model.ExtractResult(modelScope, ModelingResult.ValidationNormalizedMeanSquaredError); 188 model.ExtractResult(modelScope, ModelingResult.TestNormalizedMeanSquaredError); 189 model.ExtractResult(modelScope, ModelingResult.TrainingMeanAbsolutePercentageError); 190 model.ExtractResult(modelScope, ModelingResult.ValidationMeanAbsolutePercentageError); 191 model.ExtractResult(modelScope, ModelingResult.TestMeanAbsolutePercentageError); 192 model.ExtractResult(modelScope, ModelingResult.TrainingMeanAbsolutePercentageOfRangeError); 193 model.ExtractResult(modelScope, ModelingResult.ValidationMeanAbsolutePercentageOfRangeError); 194 model.ExtractResult(modelScope, ModelingResult.TestMeanAbsolutePercentageOfRangeError); 195 model.ExtractResult(modelScope, ModelingResult.TrainingCoefficientOfDetermination); 196 model.ExtractResult(modelScope, ModelingResult.ValidationCoefficientOfDetermination); 197 model.ExtractResult(modelScope, ModelingResult.TestCoefficientOfDetermination); 198 model.ExtractResult(modelScope, ModelingResult.TrainingVarianceAccountedFor); 199 model.ExtractResult(modelScope, ModelingResult.ValidationVarianceAccountedFor); 200 model.ExtractResult(modelScope, ModelingResult.TestVarianceAccountedFor); 201 202 ItemList evaluationImpacts = modelScope.GetVariableValue<ItemList>(ModelingResult.VariableEvaluationImpact.ToString(), false); 203 ItemList qualityImpacts = modelScope.GetVariableValue<ItemList>(ModelingResult.VariableQualityImpact.ToString(), false); 204 foreach (ItemList row in evaluationImpacts) { 205 string variableName = ((StringData)row[0]).Data; 206 double impact = ((DoubleData)row[1]).Data; 207 model.SetVariableResult(ModelingResult.VariableEvaluationImpact, variableName, impact); 208 model.AddInputVariable(variableName); 209 } 210 foreach (ItemList row in qualityImpacts) { 211 string variableName = ((StringData)row[0]).Data; 212 double impact = ((DoubleData)row[1]).Data; 213 model.SetVariableResult(ModelingResult.VariableQualityImpact, variableName, impact); 214 model.AddInputVariable(variableName); 215 } 216 217 return model; 50 return DefaultModelAnalyzerOperators.PopulateAnalyzerModel(modelScope, model, ModelType.Regression); 218 51 } 219 52 }
Note: See TracChangeset
for help on using the changeset viewer.