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 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.SupportVectorMachines/3.2/SupportVectorClassification.cs

    r2351 r2356  
    1 #region License Information
     1
     2#region License Information
    23/* HeuristicLab
    34 * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     
    3738
    3839namespace HeuristicLab.SupportVectorMachines {
    39   public class SupportVectorClassification : SupportVectorRegression {
     40  public class SupportVectorClassification : SupportVectorRegression, IClassificationAlgorithm {
    4041
    4142    public override string Name { get { return "SupportVectorClassification"; } }
     
    4849    }
    4950
    50     protected override IOperator CreateModelAnalyser() {
    51       CombinedOperator op = new CombinedOperator();
    52       op.Name = "Model Analyzer";
    53       SequentialProcessor seq = new SequentialProcessor();
    54       seq.AddSubOperator(base.CreateModelAnalyser());
    55       SequentialSubScopesProcessor seqSubScopeProc = new SequentialSubScopesProcessor();
    56       SequentialProcessor seqProc = new SequentialProcessor();
    57 
    58       SupportVectorEvaluator trainingEvaluator = new SupportVectorEvaluator();
    59       trainingEvaluator.Name = "TrainingSimpleEvaluator";
    60       trainingEvaluator.GetVariableInfo("SamplesStart").ActualName = "TrainingSamplesStart";
    61       trainingEvaluator.GetVariableInfo("SamplesEnd").ActualName = "TrainingSamplesEnd";
    62       trainingEvaluator.GetVariableInfo("Values").ActualName = "TrainingValues";
    63 
    64       SimpleAccuracyEvaluator trainingAccuracyEvaluator = new SimpleAccuracyEvaluator();
    65       trainingAccuracyEvaluator.Name = "TrainingAccuracyEvaluator";
    66       trainingAccuracyEvaluator.GetVariableInfo("Values").ActualName = "TrainingValues";
    67       trainingAccuracyEvaluator.GetVariableInfo("Accuracy").ActualName = "TrainingAccuracy";
    68       SimpleAccuracyEvaluator validationAccuracyEvaluator = new SimpleAccuracyEvaluator();
    69       validationAccuracyEvaluator.Name = "ValidationAccuracyEvaluator";
    70       validationAccuracyEvaluator.GetVariableInfo("Values").ActualName = "ValidationValues";
    71       validationAccuracyEvaluator.GetVariableInfo("Accuracy").ActualName = "ValidationAccuracy";
    72       SimpleAccuracyEvaluator testAccuracyEvaluator = new SimpleAccuracyEvaluator();
    73       testAccuracyEvaluator.Name = "TestAccuracyEvaluator";
    74       testAccuracyEvaluator.GetVariableInfo("Values").ActualName = "TestValues";
    75       testAccuracyEvaluator.GetVariableInfo("Accuracy").ActualName = "TestAccuracy";
    76 
    77       SimpleConfusionMatrixEvaluator trainingConfusionMatrixEvaluator = new SimpleConfusionMatrixEvaluator();
    78       trainingConfusionMatrixEvaluator.Name = "TrainingConfusionMatrixEvaluator";
    79       trainingConfusionMatrixEvaluator.GetVariableInfo("Values").ActualName = "TrainingValues";
    80       trainingConfusionMatrixEvaluator.GetVariableInfo("ConfusionMatrix").ActualName = "TrainingConfusionMatrix";
    81       SimpleConfusionMatrixEvaluator validationConfusionMatrixEvaluator = new SimpleConfusionMatrixEvaluator();
    82       validationConfusionMatrixEvaluator.Name = "ValidationConfusionMatrixEvaluator";
    83       validationConfusionMatrixEvaluator.GetVariableInfo("Values").ActualName = "ValidationValues";
    84       validationConfusionMatrixEvaluator.GetVariableInfo("ConfusionMatrix").ActualName = "ValidationConfusionMatrix";
    85       SimpleConfusionMatrixEvaluator testConfusionMatrixEvaluator = new SimpleConfusionMatrixEvaluator();
    86       testConfusionMatrixEvaluator.Name = "TestConfusionMatrixEvaluator";
    87       testConfusionMatrixEvaluator.GetVariableInfo("Values").ActualName = "TestValues";
    88       testConfusionMatrixEvaluator.GetVariableInfo("ConfusionMatrix").ActualName = "TestConfusionMatrix";
    89 
    90       seqProc.AddSubOperator(trainingEvaluator);
    91       seqProc.AddSubOperator(trainingAccuracyEvaluator);
    92       seqProc.AddSubOperator(validationAccuracyEvaluator);
    93       seqProc.AddSubOperator(testAccuracyEvaluator);
    94       seqProc.AddSubOperator(trainingConfusionMatrixEvaluator);
    95       seqProc.AddSubOperator(validationConfusionMatrixEvaluator);
    96       seqProc.AddSubOperator(testConfusionMatrixEvaluator);
    97 
    98       seq.AddSubOperator(seqSubScopeProc);
    99       seqSubScopeProc.AddSubOperator(seqProc);
    100 
    101       op.OperatorGraph.AddOperator(seq);
    102       op.OperatorGraph.InitialOperator = seq;
    103       return op;
     51    protected override IOperator CreateModelAnalyzerOperator() {
     52      return DefaultClassificationOperators.CreatePostProcessingOperator();
    10453    }
    10554
    10655
    10756    protected override IAnalyzerModel CreateSVMModel(IScope bestModelScope) {
    108       IAnalyzerModel model = base.CreateSVMModel(bestModelScope);
    109 
    110       model.SetResult("TrainingAccuracy", bestModelScope.GetVariableValue<DoubleData>("TrainingAccuracy", false).Data);
    111       model.SetResult("ValidationAccuracy", bestModelScope.GetVariableValue<DoubleData>("ValidationAccuracy", false).Data);
    112       model.SetResult("TestAccuracy", bestModelScope.GetVariableValue<DoubleData>("TestAccuracy", false).Data);
    113 
     57      IAnalyzerModel model = new AnalyzerModel();
     58      model.SetMetaData("Cost", bestModelScope.GetVariableValue<DoubleData>("Cost", false).Data);
     59      model.SetMetaData("Nu", bestModelScope.GetVariableValue<DoubleData>("Nu", false).Data);
     60      DefaultClassificationOperators.PopulateAnalyzerModel(bestModelScope, model);
    11461      return model;
    11562    }
Note: See TracChangeset for help on using the changeset viewer.