Changeset 16308 for branches/2845_EnhancedProgress/HeuristicLab.DataPreprocessing/3.4/Content/ManipulationContent.cs
- Timestamp:
- 11/20/18 13:52:40 (5 years ago)
- Location:
- branches/2845_EnhancedProgress
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2845_EnhancedProgress
- Property svn:mergeinfo changed
/stable reverse-merged: 15587-15588 /trunk/sources removed
- Property svn:mergeinfo changed
-
branches/2845_EnhancedProgress/HeuristicLab.DataPreprocessing
- Property svn:mergeinfo changed
/stable/HeuristicLab.DataPreprocessing reverse-merged: 15587 /branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing removed /trunk/sources/HeuristicLab.DataPreprocessing removed
- Property svn:mergeinfo changed
-
branches/2845_EnhancedProgress/HeuristicLab.DataPreprocessing/3.4
- Property svn:mergeinfo changed
/stable/HeuristicLab.DataPreprocessing/3.4 reverse-merged: 15587 /branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4 removed /trunk/sources/HeuristicLab.DataPreprocessing/3.4 removed
- Property svn:mergeinfo changed
-
branches/2845_EnhancedProgress/HeuristicLab.DataPreprocessing/3.4/Content/ManipulationContent.cs
r16307 r16308 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 8Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. … … 20 20 #endregion 21 21 22 using System;23 using System.Collections.Generic;24 22 using System.Drawing; 25 using System.Linq;26 23 using HeuristicLab.Common; 27 24 using HeuristicLab.Core; 28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;29 25 30 26 namespace HeuristicLab.DataPreprocessing { 27 31 28 [Item("Manipulation", "Represents the available manipulations on a data set.")] 32 [StorableClass] 33 public class ManipulationContent : PreprocessingContent, IViewShortcut { 29 public class ManipulationContent : Item, IViewShortcut { 34 30 public static new Image StaticItemImage { 35 31 get { return HeuristicLab.Common.Resources.VSImageLibrary.Method; } 36 32 } 37 33 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; 41 42 } 42 43 43 public ManipulationContent(ManipulationContent original, Cloner cloner) : 44 base(original, cloner) { 45 } 44 public ManipulationContent(ManipulationContent content, Cloner cloner) : base(content, cloner) { } 45 46 46 public override IDeepCloneable Clone(Cloner cloner) { 47 47 return new ManipulationContent(this, cloner); 48 48 } 49 50 [StorableConstructor]51 protected ManipulationContent(bool deserializing)52 : base(deserializing) { }53 #endregion54 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 }125 49 } 126 50 }
Note: See TracChangeset
for help on using the changeset viewer.