Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/08/15 12:53:55 (9 years ago)
Author:
mkommend
Message:

#2335: Merged changes into trunk.

Location:
trunk/sources/HeuristicLab.DataPreprocessing/3.4
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.DataPreprocessing/3.4

    • Property svn:mergeinfo set to (toggle deleted branches)
      /branches/DataPreprocessingImprovements/HeuristicLab.DataPreprocessing/3.4mergedeligible
      /branches/1721-RandomForestPersistence/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.410321-10322
      /branches/Algorithms.GradientDescent/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.45516-5520
      /branches/Benchmarking/sources/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.46917-7005
      /branches/CloningRefactoring/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.44656-4721
      /branches/CodeEditor/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.411700-11806
      /branches/DataAnalysis Refactoring/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.45471-5808
      /branches/DataAnalysis SolutionEnsembles/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.45815-6180
      /branches/DataAnalysis/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.44458-4459,​4462,​4464
      /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.410085-11101
      /branches/DataPreprocessingImprovements/3.412051
      /branches/GP.Grammar.Editor/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.46284-6795
      /branches/GP.Symbols (TimeLag, Diff, Integral)/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.45060
      /branches/HLScript/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.410331-10358
      /branches/HeuristicLab.Problems.DataAnalysis.Trading/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.46123-9799
      /branches/LogResidualEvaluator/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.410202-10483
      /branches/NET40/sources/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.45138-5162
      /branches/ParallelEngine/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.45175-5192
      /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.47568-7810
      /branches/QAPAlgorithms/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.46350-6627
      /branches/Restructure trunk solution/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.46828
      /branches/RuntimeOptimizer/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.48943-9078
      /branches/ScatterSearch (trunk integration)/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.47787-8333
      /branches/SlaveShutdown/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.48944-8956
      /branches/SpectralKernelForGaussianProcesses/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.410204-10479
      /branches/SuccessProgressAnalysis/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.45370-5682
      /branches/Trunk/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.46829-6865
      /branches/UnloadJobs/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.49168-9215
      /branches/VNS/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.45594-5752
      /branches/histogram/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.45959-6341
      /stable/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.410032-10033,​11170,​11173,​11175,​12008-12010
  • trunk/sources/HeuristicLab.DataPreprocessing/3.4/Implementations/SearchLogic.cs

    r12012 r12676  
    2323using System.Collections;
    2424using System.Collections.Generic;
    25 using System.Linq;
    2625
    2726namespace HeuristicLab.DataPreprocessing {
    2827  public class SearchLogic : ISearchLogic {
    2928    private readonly ITransactionalPreprocessingData preprocessingData;
     29    private readonly IFilterLogic filterLogic;
    3030
    3131    private Dictionary<int, IList<int>> MissingValueIndicies { get; set; }
     
    4444    }
    4545
    46     public SearchLogic(ITransactionalPreprocessingData thePreprocessingData) {
     46    public SearchLogic(ITransactionalPreprocessingData thePreprocessingData, IFilterLogic theFilterLogic) {
    4747      preprocessingData = thePreprocessingData;
     48      filterLogic = theFilterLogic;
    4849
    4950      MissingValueIndicies = new Dictionary<int, IList<int>>();
    5051      ValuesWithoutNaN = new Dictionary<int, IList>();
    5152
    52       preprocessingData.Changed += preprocessingData_Changed;
     53      preprocessingData.Changed += PreprocessingData_Changed;
     54      filterLogic.FilterChanged += FilterLogic_FilterChanged;
    5355    }
    5456
    55     void preprocessingData_Changed(object sender, DataPreprocessingChangedEventArgs e)
    56     {
     57    void FilterLogic_FilterChanged(object sender, EventArgs e) {
     58      //recalculate
     59      for (int i = 0; i < Columns; i++) {
     60        MissingValueIndicies.Remove(i);
     61        ValuesWithoutNaN.Remove(i);
     62      }
     63    }
     64
     65    void PreprocessingData_Changed(object sender, DataPreprocessingChangedEventArgs e) {
    5766      switch (e.Type) {
    5867        case DataPreprocessingChangedEventType.DeleteColumn:
     
    7382          ValuesWithoutNaN = new Dictionary<int, IList>();
    7483          break;
    75       } 
     84      }
    7685    }
    7786
     
    97106
    98107    public IList<int> GetMissingValueIndices(int columnIndex) {
    99       if (!MissingValueIndicies.ContainsKey(columnIndex)){       
    100           if (preprocessingData.VariableHasType<double>(columnIndex)) {
    101             MissingValueIndicies[columnIndex] = GetMissingValueIndices<double>(columnIndex);
    102           } else if (preprocessingData.VariableHasType<string>(columnIndex)) {
    103             MissingValueIndicies[columnIndex] = GetMissingValueIndices<string>(columnIndex);
    104           } else if (preprocessingData.VariableHasType<DateTime>(columnIndex)) {
    105             MissingValueIndicies[columnIndex] = GetMissingValueIndices<DateTime>(columnIndex);
    106           } else {
    107             throw new ArgumentException("column " + columnIndex + " contains a non supported type.");
    108           }
    109       }
     108      if (!MissingValueIndicies.ContainsKey(columnIndex)) {
     109        if (preprocessingData.VariableHasType<double>(columnIndex)) {
     110          MissingValueIndicies[columnIndex] = GetMissingValueIndices<double>(columnIndex);
     111        } else if (preprocessingData.VariableHasType<string>(columnIndex)) {
     112          MissingValueIndicies[columnIndex] = GetMissingValueIndices<string>(columnIndex);
     113        } else if (preprocessingData.VariableHasType<DateTime>(columnIndex)) {
     114          MissingValueIndicies[columnIndex] = GetMissingValueIndices<DateTime>(columnIndex);
     115        } else {
     116          throw new ArgumentException("column " + columnIndex + " contains a non supported type.");
     117        }
     118      }
     119      return MissingValueIndicies[columnIndex];
     120    }
    110121
    111       return MissingValueIndicies[columnIndex];
    112    }
    113122    private IList<int> GetMissingValueIndices<T>(int columnIndex) {
    114123      List<int> missingIndices = new List<int>();
    115      
    116       for(int row = 0; row < preprocessingData.Rows; ++row) {
     124
     125      for (int row = 0; row < preprocessingData.Rows; ++row) {
    117126        if (IsMissingValue(columnIndex, row)) {
    118127          missingIndices.Add(row);
     
    123132    }
    124133
    125     public IEnumerable<T> GetValuesWithoutNaN<T>(int columnIndex, bool considerSelection)
    126     {
    127       if (considerSelection) {     
    128         var selectedRows =  preprocessingData.Selection[columnIndex];
    129        
     134    public IEnumerable<T> GetValuesWithoutNaN<T>(int columnIndex, bool considerSelection) {
     135      if (considerSelection) {
     136        var selectedRows = preprocessingData.Selection[columnIndex];
     137
    130138        List<T> values = new List<T>();
    131139        foreach (var rowIdx in selectedRows) {
Note: See TracChangeset for help on using the changeset viewer.