Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/31/12 18:26:03 (12 years ago)
Author:
gkronber
Message:

#1902: worked on Gaussian Process algorithm

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/GaussianProcess/GaussianProcessRegression.cs

    r8325 r8371  
    2121#endregion
    2222
     23using System;
    2324using System.Collections.Generic;
    2425using System.Linq;
     
    2728using HeuristicLab.Core;
    2829using HeuristicLab.Data;
     30using HeuristicLab.Operators;
    2931using HeuristicLab.Optimization;
    3032using HeuristicLab.Parameters;
     
    3436using HeuristicLab.Random;
    3537
    36 namespace HeuristicLab.Algorithms.DataAnalysis.GaussianProcess {
     38namespace HeuristicLab.Algorithms.DataAnalysis {
    3739  /// <summary>
    3840  ///Gaussian process regression data analysis algorithm.
     
    4143  [Creatable("Data Analysis")]
    4244  [StorableClass]
    43   public sealed class GaussianProcessRegression : FixedDataAnalysisAlgorithm<IRegressionProblem> {
     45  public sealed class GaussianProcessRegression : EngineAlgorithm, IStorableContent {
     46    public string Filename { get; set; }
     47
     48    public override Type ProblemType { get { return typeof(IRegressionProblem); } }
     49    public new IRegressionProblem Problem {
     50      get { return (IRegressionProblem)base.Problem; }
     51      set { base.Problem = value; }
     52    }
     53
    4454    private const string MeanFunctionParameterName = "MeanFunction";
    4555    private const string CovarianceFunctionParameterName = "CovarianceFunction";
    46     private const string MinimizationIterationsParameterName = "MinimizationIterations";
    47     private const string NegativeLogLikelihoodTableParameterName = "NegativeLogLikelihoodTable";
    48     private const string HyperParametersTableParameterName = "HyperParametersTable";
     56    private const string MinimizationIterationsParameterName = "Iterations";
     57    //private const string NegativeLogLikelihoodTableParameterName = "NegativeLogLikelihoodTable";
     58    //private const string HyperParametersTableParameterName = "HyperParametersTable";
    4959
    5060    #region parameter properties
     
    95105      Parameters.Add(new ConstrainedValueParameter<ICovarianceFunction>(CovarianceFunctionParameterName, "The covariance function to use.",
    96106        new ItemSet<ICovarianceFunction>(covFunctions), covFunctions.First()));
    97       Parameters.Add(new ValueParameter<IntValue>(MinimizationIterationsParameterName, "The number of iterations for likelihood optimization.", new IntValue(20)));
     107      Parameters.Add(new ValueParameter<IntValue>(MinimizationIterationsParameterName, "The number of iterations for likelihood optimization with BFGS.", new IntValue(20)));
    98108      //Parameters.Add(new LookupParameter<DataTable>(NegativeLogLikelihoodTableParameterName, "The negative log likelihood values over the whole run."));
    99109      //Parameters.Add(new LookupParameter<DataTable>(HyperParametersTableParameterName, "The values of the hyper-parameters over the whole run."));
     110
     111      var setParameterLength = new GaussianProcessSetHyperparameterLength();
     112      var initializer = new BFGSInitializer();
     113      var makeStep = new BFGSMakeStep();
     114      var branch = new ConditionalBranch();
     115      var modelCreator = new GaussianProcessRegressionModelCreator();
     116      var updateResults = new BFGSUpdateResults();
     117
     118      OperatorGraph.InitialOperator = setParameterLength;
     119
     120      setParameterLength.CovarianceFunctionParameter.ActualName = CovarianceFunctionParameterName;
     121      setParameterLength.MeanFunctionParameter.ActualName = MeanFunctionParameterName;
     122      setParameterLength.ProblemDataParameter.ActualName = Problem.ProblemDataParameter.Name;
     123      setParameterLength.Successor = initializer;
     124
     125      initializer.IterationsParameter.ActualName = MinimizationIterationsParameterName;
     126      initializer.NumberOfHyperparameterParameter.ActualName = setParameterLength.NumberOfHyperparameterParameter.Name;
     127      initializer.Successor = makeStep;
     128
     129      makeStep.BFGSStateParameter.ActualName = initializer.BFGSStateParameter.Name;
     130      makeStep.HyperparameterParameter.ActualName = initializer.NumberOfHyperparameterParameter.Name;
     131      makeStep.Successor = branch;
     132
     133      branch.ConditionParameter.ActualName = makeStep.TerminationCriterionParameter.Name;
     134      branch.FalseBranch = modelCreator;
     135
     136      modelCreator.ProblemDataParameter.ActualName = Problem.ProblemDataParameter.Name;
     137      modelCreator.MeanFunctionParameter.ActualName = MeanFunctionParameterName;
     138      modelCreator.CovarianceFunctionParameter.ActualName = CovarianceFunctionParameterName;
     139      modelCreator.HyperparameterParameter.ActualName = initializer.HyperparameterParameter.Name;
     140      modelCreator.Successor = updateResults;
     141
     142      updateResults.BFGSStateParameter.ActualName = initializer.BFGSStateParameter.Name;
     143      updateResults.FunctionValueParameter.ActualName = modelCreator.NegativeLogLikelihoodParameter.Name;
     144      updateResults.HyperparameterGradientsParameter.ActualName = modelCreator.HyperparameterGradientsParameter.Name;
     145      updateResults.Successor = makeStep;
     146
    100147    }
    101148    [StorableHook(HookType.AfterDeserialization)]
     
    105152      return new GaussianProcessRegression(this, cloner);
    106153    }
    107 
     154    /*
    108155    #region Gaussian process regression
    109156    protected override void Run() {
     
    215262
    216263    #endregion
     264     */
    217265  }
    218266}
Note: See TracChangeset for help on using the changeset viewer.