Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/26/10 11:05:28 (14 years ago)
Author:
gkronber
Message:

Added operator for calculation of relative variable frequencies. #938 (Data types and operators for regression problems)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/BestValidationSymbolicRegressionSolutionVisualizer.cs

    r3513 r3531  
    3131using HeuristicLab.Problems.DataAnalysis.Evaluators;
    3232using HeuristicLab.Problems.DataAnalysis.Symbolic;
     33using System.Collections.Generic;
     34using HeuristicLab.Analysis;
    3335
    3436namespace HeuristicLab.Problems.DataAnalysis.Regression.Symbolic {
     
    4951    private const string QualityParameterName = "Quality";
    5052    private const string ResultsParameterName = "Results";
     53    private const string VariableFrequenciesParameterName = "VariableFrequencies";
    5154
    5255    #region parameter properties
     
    8790      get { return (ILookupParameter<ResultCollection>)Parameters[ResultsParameterName]; }
    8891    }
     92    public ILookupParameter<DataTable> VariableFrequenciesParameter {
     93      get { return (ILookupParameter<DataTable>)Parameters[VariableFrequenciesParameterName]; }
     94    }
     95
    8996    #endregion
    9097
     
    104111    public IntValue ValidationSamplesEnd {
    105112      get { return ValidationSamplesEndParameter.ActualValue; }
     113    }
     114    public DataTable VariableFrequencies {
     115      get { return VariableFrequenciesParameter.ActualValue; }
     116      set { VariableFrequenciesParameter.ActualValue = value; }
    106117    }
    107118    #endregion
     
    118129      Parameters.Add(new ValueLookupParameter<IntValue>(ValidationSamplesEndParameterName, "The end index of the validation partition (part of the training partition)."));
    119130      Parameters.Add(new LookupParameter<SymbolicRegressionSolution>(BestValidationSolutionParameterName, "The best symbolic expression tree based on the validation data for the symbolic regression problem."));
     131      Parameters.Add(new LookupParameter<DataTable>(VariableFrequenciesParameterName, "The relative variable reference frequencies aggregated over the whole population."));
    120132      Parameters.Add(new LookupParameter<ResultCollection>(ResultsParameterName, "The result collection of the algorithm."));
    121133    }
     
    124136      ItemArray<SymbolicExpressionTree> expressions = SymbolicExpressionTreeParameter.ActualValue;
    125137      DataAnalysisProblemData problemData = DataAnalysisProblemDataParameter.ActualValue;
    126 
     138      #region update variable frequencies
     139      var inputVariables = problemData.InputVariables.Select(x => x.Value);
     140      if (VariableFrequencies == null) {
     141        VariableFrequencies = new DataTable("Variable Frequencies", "Relative frequency of variable references aggregated over the whole population.");
     142        AddResult("VariableFrequencies", VariableFrequencies);
     143        // add a data row for each input variable
     144        foreach (var inputVariable in inputVariables)
     145          VariableFrequencies.Rows.Add(new DataRow(inputVariable));
     146      }
     147      foreach (var pair in VariableFrequencyAnalyser.CalculateVariableFrequencies(expressions, inputVariables)) {
     148        VariableFrequencies.Rows[pair.Key].Values.Add(pair.Value);
     149      }
     150      #endregion
     151
     152      #region determination of validation-best solution
    127153      int validationSamplesStart = ValidationSamplesStart.Value;
    128154      int validationSamplesEnd = ValidationSamplesEnd.Value;
     
    142168
    143169      SymbolicRegressionSolution bestOfRunSolution = BestValidationSolutionParameter.ActualValue;
     170      #endregion
     171      #region update of validation-best solution
    144172      if (bestOfRunSolution == null) {
    145173        // no best of run solution yet -> make a solution from the currentBestExpression
     
    153181        }
    154182      }
    155 
    156 
     183      #endregion
    157184      return base.Apply();
    158185    }
Note: See TracChangeset for help on using the changeset viewer.