Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/14/09 12:59:50 (15 years ago)
Author:
gkronber
Message:

Created a subclass for time-series prognosis with SVM and created a simple version of TheilInequalityCoefficientEvaluator in HL.Modeling. (#705)

File:
1 edited

Legend:

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

    r2347 r2349  
    3939  public class SupportVectorRegression : ItemBase, IEditable, IAlgorithm {
    4040
    41     public string Name { get { return "SupportVectorRegression"; } }
    42     public string Description { get { return "TODO"; } }
     41    public virtual string Name { get { return "SupportVectorRegression"; } }
     42    public virtual string Description { get { return "TODO"; } }
    4343
    4444    private SequentialEngine.SequentialEngine engine;
     
    107107    }
    108108
    109     public int MaxTimeOffset {
    110       get { return GetVariableInjector().GetVariable("MaxTimeOffset").GetValue<IntData>().Data; }
    111       set { GetVariableInjector().GetVariable("MaxTimeOffset").GetValue<IntData>().Data = value; }
    112     }
    113 
    114     public int MinTimeOffset {
    115       get { return GetVariableInjector().GetVariable("MinTimeOffset").GetValue<IntData>().Data; }
    116       set { GetVariableInjector().GetVariable("MinTimeOffset").GetValue<IntData>().Data = value; }
    117     }
    118 
    119109    public SupportVectorRegression() {
    120110      engine = new SequentialEngine.SequentialEngine();
     
    125115      MaxNuIndex = NuList.Data.Length;
    126116      MaxGammaIndex = GammaList.Data.Length;
    127       MaxTimeOffset = 0;
    128       MinTimeOffset = 0;
    129117    }
    130118
     
    149137    }
    150138
    151     private IOperator CreateInitialization() {
     139    protected virtual IOperator CreateInitialization() {
    152140      SequentialProcessor seq = new SequentialProcessor();
    153141      seq.Name = "Initialization";
     
    159147      seq.AddSubOperator(new RandomInjector());
    160148
    161       //DatasetShuffler shuffler = new DatasetShuffler();
    162       //shuffler.GetVariableInfo("ShuffleStart").ActualName = "TrainingSamplesStart";
    163       //shuffler.GetVariableInfo("ShuffleEnd").ActualName = "TrainingSamplesEnd";
    164       //seq.AddSubOperator(shuffler);
     149      DatasetShuffler shuffler = new DatasetShuffler();
     150      shuffler.GetVariableInfo("ShuffleStart").ActualName = "TrainingSamplesStart";
     151      shuffler.GetVariableInfo("ShuffleEnd").ActualName = "TrainingSamplesEnd";
     152      seq.AddSubOperator(shuffler);
    165153      return seq;
    166154    }
     
    279267      modelProcessor.AddSubOperator(trainingEvaluator);
    280268      modelProcessor.AddSubOperator(CreateEvaluator("Validation"));
    281       modelProcessor.AddSubOperator(CreateEvaluator("Test"));
    282269
    283270      DataCollector collector = new DataCollector();
     
    307294    }
    308295
    309     private IOperator CreateEvaluator(string p) {
     296    protected virtual IOperator CreateEvaluator(string p) {
    310297      CombinedOperator op = new CombinedOperator();
    311298      op.Name = p + "Evaluator";
     
    379366    }
    380367
    381     private IOperator CreateGlobalInjector() {
     368    protected virtual VariableInjector CreateGlobalInjector() {
    382369      VariableInjector injector = new VariableInjector();
    383370      injector.AddVariable(new HeuristicLab.Core.Variable("CostIndex", new IntData(0)));
     
    407394      injector.AddVariable(new HeuristicLab.Core.Variable("Type", new StringData("NU_SVR")));
    408395      injector.AddVariable(new HeuristicLab.Core.Variable("PunishmentFactor", new DoubleData(1000.0)));
    409       injector.AddVariable(new HeuristicLab.Core.Variable("MaxTimeOffset", new IntData()));
    410       injector.AddVariable(new HeuristicLab.Core.Variable("MinTimeOffset", new IntData()));
    411396      return injector;
    412397    }
    413398
    414     private IOperator CreateModelAnalyser() {
     399    protected virtual IOperator CreateModelAnalyser() {
    415400      CombinedOperator modelAnalyser = new CombinedOperator();
    416401      modelAnalyser.Name = "Model Analyzer";
    417402      SequentialSubScopesProcessor seqSubScopeProc = new SequentialSubScopesProcessor();
    418403      SequentialProcessor seqProc = new SequentialProcessor();
     404
    419405      PredictorBuilder predictorBuilder = new PredictorBuilder();
    420406      predictorBuilder.GetVariableInfo("SVMModel").ActualName = "Model";
     
    426412      qualImpactCalc.GetVariableInfo("SamplesEnd").ActualName = "ActualTrainingSamplesEnd";
    427413
     414      seqProc.AddSubOperator(CreateEvaluator("Test"));
    428415      seqProc.AddSubOperator(predictorBuilder);
    429416      seqProc.AddSubOperator(evalImpactCalc);
     
    436423
    437424
    438     protected internal virtual IAnalyzerModel CreateSVMModel(IScope bestModelScope) {
     425    protected virtual IAnalyzerModel CreateSVMModel(IScope bestModelScope) {
    439426      AnalyzerModel model = new AnalyzerModel();
    440427      model.SetResult("TrainingMeanSquaredError", bestModelScope.GetVariableValue<DoubleData>("Quality", false).Data);
     
    486473    }
    487474
    488     private IOperator GetVariableInjector() {
     475    protected IOperator GetVariableInjector() {
    489476      return GetMainOperator().SubOperators[0].SubOperators[0];
    490477    }
    491478
    492     private IOperator GetMainOperator() {
     479    protected IOperator GetMainOperator() {
    493480      CombinedOperator svm = (CombinedOperator)Engine.OperatorGraph.InitialOperator;
    494481      return svm.OperatorGraph.InitialOperator;
Note: See TracChangeset for help on using the changeset viewer.