Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/20/18 13:52:40 (5 years ago)
Author:
pfleck
Message:

#2845 reverted the last merge (r16307) because some revisions were missing

Location:
branches/2845_EnhancedProgress
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/2845_EnhancedProgress

  • branches/2845_EnhancedProgress/HeuristicLab.DataPreprocessing

  • branches/2845_EnhancedProgress/HeuristicLab.DataPreprocessing/3.4

  • branches/2845_EnhancedProgress/HeuristicLab.DataPreprocessing/3.4/Content/ManipulationContent.cs

    r16307 r16308  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2020#endregion
    2121
    22 using System;
    23 using System.Collections.Generic;
    2422using System.Drawing;
    25 using System.Linq;
    2623using HeuristicLab.Common;
    2724using HeuristicLab.Core;
    28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2925
    3026namespace HeuristicLab.DataPreprocessing {
     27
    3128  [Item("Manipulation", "Represents the available manipulations on a data set.")]
    32   [StorableClass]
    33   public class ManipulationContent : PreprocessingContent, IViewShortcut {
     29  public class ManipulationContent : Item, IViewShortcut {
    3430    public static new Image StaticItemImage {
    3531      get { return HeuristicLab.Common.Resources.VSImageLibrary.Method; }
    3632    }
    3733
    38     #region Constructor, Cloning & Persistence
    39     public ManipulationContent(IFilteredPreprocessingData preprocessingData)
    40       : base(preprocessingData) {
     34    public ManipulationLogic ManipulationLogic { get; private set; }
     35    public SearchLogic SearchLogic { get; private set; }
     36    public FilterLogic FilterLogic { get; private set; }
     37
     38    public ManipulationContent(ManipulationLogic manipulationLogic, SearchLogic searchLogic, FilterLogic filterLogic) {
     39      ManipulationLogic = manipulationLogic;
     40      SearchLogic = searchLogic;
     41      FilterLogic = filterLogic;
    4142    }
    4243
    43     public ManipulationContent(ManipulationContent original, Cloner cloner) :
    44       base(original, cloner) {
    45     }
     44    public ManipulationContent(ManipulationContent content, Cloner cloner) : base(content, cloner) { }
     45
    4646    public override IDeepCloneable Clone(Cloner cloner) {
    4747      return new ManipulationContent(this, cloner);
    4848    }
    49 
    50     [StorableConstructor]
    51     protected ManipulationContent(bool deserializing)
    52       : base(deserializing) { }
    53     #endregion
    54 
    55     public List<int> RowsWithMissingValuesGreater(double percent) {
    56       List<int> rows = new List<int>();
    57 
    58       for (int i = 0; i < PreprocessingData.Rows; ++i) {
    59         int missingCount = PreprocessingData.GetRowMissingValueCount(i);
    60         if (100f / PreprocessingData.Columns * missingCount > percent) {
    61           rows.Add(i);
    62         }
    63       }
    64 
    65       return rows;
    66     }
    67 
    68     public List<int> ColumnsWithMissingValuesGreater(double percent) {
    69       List<int> columns = new List<int>();
    70       for (int i = 0; i < PreprocessingData.Columns; ++i) {
    71         int missingCount = PreprocessingData.GetMissingValueCount(i);
    72         if (100f / PreprocessingData.Rows * missingCount > percent) {
    73           columns.Add(i);
    74         }
    75       }
    76 
    77       return columns;
    78     }
    79 
    80     public List<int> ColumnsWithVarianceSmaller(double variance) {
    81       List<int> columns = new List<int>();
    82       for (int i = 0; i < PreprocessingData.Columns; ++i) {
    83         if (PreprocessingData.VariableHasType<double>(i)) {
    84           double columnVariance = PreprocessingData.GetVariance<double>(i);
    85           if (columnVariance < variance) {
    86             columns.Add(i);
    87           }
    88         } else if (PreprocessingData.VariableHasType<DateTime>(i)) {
    89           double columnVariance = (double)PreprocessingData.GetVariance<DateTime>(i).Ticks / TimeSpan.TicksPerSecond;
    90           if (columnVariance < variance) {
    91             columns.Add(i);
    92           }
    93         }
    94       }
    95       return columns;
    96     }
    97 
    98     public void DeleteRowsWithMissingValuesGreater(double percent) {
    99       DeleteRows(RowsWithMissingValuesGreater(percent));
    100     }
    101 
    102     public void DeleteColumnsWithMissingValuesGreater(double percent) {
    103       DeleteColumns(ColumnsWithMissingValuesGreater(percent));
    104     }
    105 
    106     public void DeleteColumnsWithVarianceSmaller(double variance) {
    107       DeleteColumns(ColumnsWithVarianceSmaller(variance));
    108     }
    109 
    110     private void DeleteRows(List<int> rows) {
    111       PreprocessingData.InTransaction(() => {
    112         foreach (int row in rows.OrderByDescending(x => x)) {
    113           PreprocessingData.DeleteRow(row);
    114         }
    115       });
    116     }
    117 
    118     private void DeleteColumns(List<int> columns) {
    119       PreprocessingData.InTransaction(() => {
    120         foreach (int column in columns.OrderByDescending(x => x)) {
    121           PreprocessingData.DeleteColumn(column);
    122         }
    123       });
    124     }
    12549  }
    12650}
Note: See TracChangeset for help on using the changeset viewer.