Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/15/09 14:01:47 (15 years ago)
Author:
gkronber
Message:

Moved common (not algorithm specific) model analyzer code (same operator tree in all regression/classification/time-series-prognosis engines) to HL.Modeling. #625, #705, #739.

File:
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Modeling/3.2/DefaultClassificationOperators.cs

    r2354 r2356  
    2222using HeuristicLab.Core;
    2323using HeuristicLab.DataAnalysis;
    24 using HeuristicLab.GP.Interfaces;
    2524using HeuristicLab.Operators;
    2625using HeuristicLab.Modeling;
    2726using HeuristicLab.Data;
    2827
    29 namespace HeuristicLab.GP.StructureIdentification.Classification {
    30   public static class DefaultClassificationAlgorithmOperators {
     28namespace HeuristicLab.Modeling {
     29  public static class DefaultClassificationOperators {
    3130    public static IOperator CreatePostProcessingOperator() {
     31      CombinedOperator op = new CombinedOperator();
     32      op.Name = "Classification model analyzer";
     33
    3234      SequentialProcessor seq = new SequentialProcessor();
    33       seq.AddSubOperator(DefaultStructureIdentificationAlgorithmOperators.CreatePostProcessingOperator());
     35      seq.AddSubOperator(DefaultRegressionOperators.CreatePostProcessingOperator());
    3436
    35       UniformSequentialSubScopesProcessor subScopesProc = new UniformSequentialSubScopesProcessor();
    36       SequentialProcessor individualProc = new SequentialProcessor();
    37       subScopesProc.AddSubOperator(individualProc);
    38       seq.AddSubOperator(subScopesProc);
    3937      SimpleAccuracyEvaluator trainingAccuracy = new SimpleAccuracyEvaluator();
    4038      trainingAccuracy.Name = "TrainingAccuracyEvaluator";
     
    5250      testAccuracy.GetVariableInfo("Values").ActualName = "TestValues";
    5351
    54       individualProc.AddSubOperator(trainingAccuracy);
    55       individualProc.AddSubOperator(validationAccuracy);
    56       individualProc.AddSubOperator(testAccuracy);
    57       return seq;
     52      SimpleConfusionMatrixEvaluator trainingConfusionMatrixEvaluator = new SimpleConfusionMatrixEvaluator();
     53      trainingConfusionMatrixEvaluator.Name = "TrainingConfusionMatrixEvaluator";
     54      trainingConfusionMatrixEvaluator.GetVariableInfo("Values").ActualName = "TrainingValues";
     55      trainingConfusionMatrixEvaluator.GetVariableInfo("ConfusionMatrix").ActualName = "TrainingConfusionMatrix";
     56      SimpleConfusionMatrixEvaluator validationConfusionMatrixEvaluator = new SimpleConfusionMatrixEvaluator();
     57      validationConfusionMatrixEvaluator.Name = "ValidationConfusionMatrixEvaluator";
     58      validationConfusionMatrixEvaluator.GetVariableInfo("Values").ActualName = "ValidationValues";
     59      validationConfusionMatrixEvaluator.GetVariableInfo("ConfusionMatrix").ActualName = "ValidationConfusionMatrix";
     60      SimpleConfusionMatrixEvaluator testConfusionMatrixEvaluator = new SimpleConfusionMatrixEvaluator();
     61      testConfusionMatrixEvaluator.Name = "TestConfusionMatrixEvaluator";
     62      testConfusionMatrixEvaluator.GetVariableInfo("Values").ActualName = "TestValues";
     63      testConfusionMatrixEvaluator.GetVariableInfo("ConfusionMatrix").ActualName = "TestConfusionMatrix";
     64
     65      seq.AddSubOperator(trainingAccuracy);
     66      seq.AddSubOperator(validationAccuracy);
     67      seq.AddSubOperator(testAccuracy);
     68      seq.AddSubOperator(trainingConfusionMatrixEvaluator);
     69      seq.AddSubOperator(validationConfusionMatrixEvaluator);
     70      seq.AddSubOperator(testConfusionMatrixEvaluator);
     71
     72      op.OperatorGraph.AddOperator(seq);
     73      op.OperatorGraph.InitialOperator = seq;
     74
     75      return op;
    5876    }
    5977
    6078    public static IOperator CreateProblemInjector() {
    61       CombinedOperator op = new CombinedOperator();
    62       op.Name = "ProblemInjector";
    63       SequentialProcessor seq = new SequentialProcessor();
    64       seq.AddSubOperator(new ProblemInjector());
    65       seq.AddSubOperator(new TargetClassesCalculator());
    66       op.OperatorGraph.AddOperator(seq);
    67       op.OperatorGraph.InitialOperator = seq;
    68       return op;
     79      return DefaultRegressionOperators.CreateProblemInjector();
    6980    }
    7081
    71     public static void SetModelData(IAnalyzerModel model, IScope scope) {
    72       model.SetResult("TrainingAccuracy", scope.GetVariableValue<DoubleData>("TrainingAccuracy", true).Data);
    73       model.SetResult("ValidationAccuracy", scope.GetVariableValue<DoubleData>("ValidationAccuracy", true).Data);
    74       model.SetResult("TestAccuracy", scope.GetVariableValue<DoubleData>("TestAccuracy", true).Data);
     82    public static IAnalyzerModel PopulateAnalyzerModel(IScope modelScope, IAnalyzerModel model) {
     83      DefaultRegressionOperators.PopulateAnalyzerModel(modelScope, model);
     84      model.SetResult("TrainingAccuracy", modelScope.GetVariableValue<DoubleData>("TrainingAccuracy", false).Data);
     85      model.SetResult("ValidationAccuracy", modelScope.GetVariableValue<DoubleData>("ValidationAccuracy", false).Data);
     86      model.SetResult("TestAccuracy", modelScope.GetVariableValue<DoubleData>("TestAccuracy", false).Data);
     87      return model;
    7588    }
    7689  }
Note: See TracChangeset for help on using the changeset viewer.