Changeset 12718 for stable/HeuristicLab.DataPreprocessing
- Timestamp:
- 07/10/15 14:16:51 (9 years ago)
- Location:
- stable
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
stable
- Property svn:mergeinfo changed
/trunk/sources merged: 12676,12682-12683
- Property svn:mergeinfo changed
-
stable/HeuristicLab.DataPreprocessing/3.4
-
Property
svn:mergeinfo
set to
(toggle deleted branches)
/trunk/sources/HeuristicLab.DataPreprocessing/3.4 merged eligible /branches/1721-RandomForestPersistence/HeuristicLab.DataPreprocessing/3.4 10321-10322 /branches/1721-RandomForestPersistence/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 10321-10322 /branches/Algorithms.GradientDescent/HeuristicLab.DataPreprocessing/3.4 5516-5520 /branches/Algorithms.GradientDescent/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 5516-5520 /branches/Benchmarking/sources/HeuristicLab.DataPreprocessing/3.4 6917-7005 /branches/Benchmarking/sources/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 6917-7005 /branches/CloningRefactoring/HeuristicLab.DataPreprocessing/3.4 4656-4721 /branches/CloningRefactoring/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 4656-4721 /branches/CodeEditor/HeuristicLab.DataPreprocessing/3.4 11700-11806 /branches/CodeEditor/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 11700-11806 /branches/DataAnalysis Refactoring/HeuristicLab.DataPreprocessing/3.4 5471-5808 /branches/DataAnalysis Refactoring/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 5471-5808 /branches/DataAnalysis SolutionEnsembles/HeuristicLab.DataPreprocessing/3.4 5815-6180 /branches/DataAnalysis SolutionEnsembles/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 5815-6180 /branches/DataAnalysis/HeuristicLab.DataPreprocessing/3.4 4458-4459,4462,4464 /branches/DataAnalysis/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 4458-4459,4462,4464 /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 10085-11101 /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 10085-11101 /branches/DataPreprocessingImprovements/3.4 12051 /branches/DataPreprocessingImprovements/HeuristicLab.DataPreprocessing/3.4 12053-12675 /branches/GP.Grammar.Editor/HeuristicLab.DataPreprocessing/3.4 6284-6795 /branches/GP.Grammar.Editor/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 6284-6795 /branches/GP.Symbols (TimeLag, Diff, Integral)/HeuristicLab.DataPreprocessing/3.4 5060 /branches/GP.Symbols (TimeLag, Diff, Integral)/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 5060 /branches/HLScript/HeuristicLab.DataPreprocessing/3.4 10331-10358 /branches/HLScript/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 10331-10358 /branches/HeuristicLab.DatasetRefactor/sources/HeuristicLab.DataPreprocessing/3.4 11570-12508 /branches/HeuristicLab.Problems.DataAnalysis.Trading/HeuristicLab.DataPreprocessing/3.4 6123-9799 /branches/HeuristicLab.Problems.DataAnalysis.Trading/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 6123-9799 /branches/LogResidualEvaluator/HeuristicLab.DataPreprocessing/3.4 10202-10483 /branches/LogResidualEvaluator/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 10202-10483 /branches/NET40/sources/HeuristicLab.DataPreprocessing/3.4 5138-5162 /branches/NET40/sources/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 5138-5162 /branches/NSGA-II Changes/HeuristicLab.DataPreprocessing/3.4 12033-12122 /branches/ParallelEngine/HeuristicLab.DataPreprocessing/3.4 5175-5192 /branches/ParallelEngine/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 5175-5192 /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.DataPreprocessing/3.4 7568-7810 /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 7568-7810 /branches/QAPAlgorithms/HeuristicLab.DataPreprocessing/3.4 6350-6627 /branches/QAPAlgorithms/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 6350-6627 /branches/Restructure trunk solution/HeuristicLab.DataPreprocessing/3.4 6828 /branches/Restructure trunk solution/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 6828 /branches/RuntimeOptimizer/HeuristicLab.DataPreprocessing/3.4 8943-9078 /branches/RuntimeOptimizer/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 8943-9078 /branches/ScatterSearch (trunk integration)/HeuristicLab.DataPreprocessing/3.4 7787-8333 /branches/ScatterSearch (trunk integration)/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 7787-8333 /branches/SlaveShutdown/HeuristicLab.DataPreprocessing/3.4 8944-8956 /branches/SlaveShutdown/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 8944-8956 /branches/SpectralKernelForGaussianProcesses/HeuristicLab.DataPreprocessing/3.4 10204-10479 /branches/SpectralKernelForGaussianProcesses/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 10204-10479 /branches/SuccessProgressAnalysis/HeuristicLab.DataPreprocessing/3.4 5370-5682 /branches/SuccessProgressAnalysis/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 5370-5682 /branches/Trunk/HeuristicLab.DataPreprocessing/3.4 6829-6865 /branches/Trunk/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 6829-6865 /branches/UnloadJobs/HeuristicLab.DataPreprocessing/3.4 9168-9215 /branches/UnloadJobs/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 9168-9215 /branches/VNS/HeuristicLab.DataPreprocessing/3.4 5594-5752 /branches/VNS/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 5594-5752 /branches/histogram/HeuristicLab.DataPreprocessing/3.4 5959-6341 /branches/histogram/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 5959-6341 /stable/HeuristicLab.DataPreprocessing/HeuristicLab.DataPreprocessing/3.4 10032-10033,11170,11173,11175,12008-12010
-
Property
svn:mergeinfo
set to
(toggle deleted branches)
-
stable/HeuristicLab.DataPreprocessing/3.4/Implementations/DataGridContent.cs
r12009 r12718 114 114 } 115 115 116 public void DeleteRow (IEnumerable<int> rows) {116 public void DeleteRows(IEnumerable<int> rows) { 117 117 PreProcessingData.DeleteRowsWithIndices(rows); 118 118 createRowNames(); 119 } 120 121 public void DeleteColumn(int column) { 122 PreProcessingData.DeleteColumn(column); 119 123 } 120 124 -
stable/HeuristicLab.DataPreprocessing/3.4/Implementations/HistogramContent.cs
r12009 r12718 42 42 set { this.classifierVariableIndex = value; } 43 43 } 44 public bool IsDetailedChartViewEnabled { get; set; } 44 45 45 46 -
stable/HeuristicLab.DataPreprocessing/3.4/Implementations/PreprocessingChartContent.cs
r12009 r12718 23 23 using System.Collections.Generic; 24 24 using System.Drawing; 25 using System.Linq; 25 26 using HeuristicLab.Analysis; 26 27 using HeuristicLab.Common; … … 126 127 127 128 128 public ICheckedItemList<StringValue> CreateVariableItemList( ) {129 public ICheckedItemList<StringValue> CreateVariableItemList(IEnumerable<string> checkedItems = null) { 129 130 ICheckedItemList<StringValue> itemList = new CheckedItemList<StringValue>(); 130 131 foreach (string name in PreprocessingData.GetDoubleVariableNames()) { 131 itemList.Add(new StringValue(name), true); 132 var n = new StringValue(name); 133 itemList.Add(n, (checkedItems == null) ? true : checkedItems.Contains(name)); 132 134 } 133 135 return new ReadOnlyCheckedItemList<StringValue>(itemList); -
stable/HeuristicLab.DataPreprocessing/3.4/Implementations/SearchLogic.cs
r12009 r12718 23 23 using System.Collections; 24 24 using System.Collections.Generic; 25 using System.Linq;26 25 27 26 namespace HeuristicLab.DataPreprocessing { 28 27 public class SearchLogic : ISearchLogic { 29 28 private readonly ITransactionalPreprocessingData preprocessingData; 29 private readonly IFilterLogic filterLogic; 30 30 31 31 private Dictionary<int, IList<int>> MissingValueIndicies { get; set; } … … 44 44 } 45 45 46 public SearchLogic(ITransactionalPreprocessingData thePreprocessingData ) {46 public SearchLogic(ITransactionalPreprocessingData thePreprocessingData, IFilterLogic theFilterLogic) { 47 47 preprocessingData = thePreprocessingData; 48 filterLogic = theFilterLogic; 48 49 49 50 MissingValueIndicies = new Dictionary<int, IList<int>>(); 50 51 ValuesWithoutNaN = new Dictionary<int, IList>(); 51 52 52 preprocessingData.Changed += preprocessingData_Changed; 53 preprocessingData.Changed += PreprocessingData_Changed; 54 filterLogic.FilterChanged += FilterLogic_FilterChanged; 53 55 } 54 56 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) { 57 66 switch (e.Type) { 58 67 case DataPreprocessingChangedEventType.DeleteColumn: … … 73 82 ValuesWithoutNaN = new Dictionary<int, IList>(); 74 83 break; 75 } 84 } 76 85 } 77 86 … … 97 106 98 107 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 } 110 121 111 return MissingValueIndicies[columnIndex];112 }113 122 private IList<int> GetMissingValueIndices<T>(int columnIndex) { 114 123 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) { 117 126 if (IsMissingValue(columnIndex, row)) { 118 127 missingIndices.Add(row); … … 123 132 } 124 133 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 130 138 List<T> values = new List<T>(); 131 139 foreach (var rowIdx in selectedRows) { -
stable/HeuristicLab.DataPreprocessing/3.4/Implementations/StatisticsLogic.cs
r12009 r12718 38 38 39 39 public int GetColumnCount() { 40 return preprocessingData.Columns;40 return searchLogic.Columns; 41 41 } 42 42 43 43 public int GetRowCount() { 44 return preprocessingData.Rows;44 return searchLogic.Rows; 45 45 } 46 46 … … 48 48 int count = 0; 49 49 50 for (int i = 0; i < preprocessingData.Columns; ++i) {50 for (int i = 0; i < searchLogic.Columns; ++i) { 51 51 if (preprocessingData.VariableHasType<double>(i)) { 52 52 ++count; … … 57 57 58 58 public int GetNominalColumnCount() { 59 return preprocessingData.Columns - GetNumericColumnCount();59 return searchLogic.Columns - GetNumericColumnCount(); 60 60 } 61 61 62 62 public int GetMissingValueCount() { 63 63 int count = 0; 64 for (int i = 0; i < preprocessingData.Columns; ++i) {64 for (int i = 0; i < searchLogic.Columns; ++i) { 65 65 count += GetMissingValueCount(i); 66 66 } … … 73 73 74 74 public T GetMin<T>(int columnIndex, bool considerSelection) where T : IComparable<T> { 75 return preprocessingData.GetValues<T>(columnIndex, considerSelection).Min(); 75 var min = default(T); 76 if (preprocessingData.VariableHasType<T>(columnIndex)) { 77 var values = GetValuesWithoutNaN<T>(columnIndex, considerSelection); 78 if (values.Any()) { 79 min = values.Min(); 80 } 81 } 82 return min; 76 83 } 77 84 78 85 public T GetMax<T>(int columnIndex, bool considerSelection) where T : IComparable<T> { 79 return preprocessingData.GetValues<T>(columnIndex, considerSelection).Max(); 86 var max = default(T); 87 if (preprocessingData.VariableHasType<T>(columnIndex)) { 88 var values = GetValuesWithoutNaN<T>(columnIndex, considerSelection); 89 if (values.Any()) { 90 max = values.Max(); 91 } 92 } 93 return max; 80 94 } 81 95 … … 83 97 double median = double.NaN; 84 98 if (preprocessingData.VariableHasType<double>(columnIndex)) { 85 median = GetValuesWithoutNaN<double>(columnIndex, considerSelection).Median(); 99 var values = GetValuesWithoutNaN<double>(columnIndex, considerSelection); 100 if (values.Any()) { 101 median = values.Median(); 102 } 86 103 } 87 104 return median; … … 91 108 double avg = double.NaN; 92 109 if (preprocessingData.VariableHasType<double>(columnIndex)) { 93 avg = GetValuesWithoutNaN<double>(columnIndex, considerSelection).Average(); 110 var values = GetValuesWithoutNaN<double>(columnIndex, considerSelection); 111 if (values.Any()) { 112 avg = values.Average(); 113 } 94 114 } 95 115 return avg; … … 113 133 114 134 public T GetMostCommonValue<T>(int columnIndex, bool considerSelection) { 115 var t = preprocessingData.GetValues<T>(columnIndex, considerSelection); 116 var t2 = t.GroupBy(x => x); 117 var t3 = t2.Select(g => g.Key); 118 119 return preprocessingData.GetValues<T>(columnIndex, considerSelection) 120 .GroupBy(x => x) 135 var values = GetValuesWithoutNaN<T>(columnIndex, considerSelection); 136 if (!values.Any()) 137 return default(T); 138 return values.GroupBy(x => x) 121 139 .OrderByDescending(g => g.Count()) 122 140 .Select(g => g.Key) -
stable/HeuristicLab.DataPreprocessing/3.4/Interfaces/IDataGridContent.cs
r12009 r12718 31 31 IDictionary<int, IList<int>> Selection { get; set; } 32 32 33 void DeleteRow(IEnumerable<int> rows); 33 void DeleteRows(IEnumerable<int> rows); 34 void DeleteColumn(int column); 34 35 bool Validate(string value, out string errorMessage, int columnIndex); 35 36 -
stable/HeuristicLab.DataPreprocessing/3.4/ProblemDataCreator.cs
r12009 r12718 61 61 SetTrainingAndTestPartition(problemData); 62 62 // set the input variables to the correct checked state 63 var inputVariables = problemData.InputVariables.ToDictionary(x => x.Value, x => x);64 foreach (var variable in oldProblemData.InputVariables) {65 bool @checked = oldProblemData.InputVariables.ItemChecked(variable);66 problemData.InputVariables.SetItemCheckedState( inputVariables[variable.Value], @checked);63 var inputVariables = oldProblemData.InputVariables.ToDictionary(x => x.Value, x => x); 64 foreach (var variable in problemData.InputVariables) { 65 bool isChecked = oldProblemData.InputVariables.ItemChecked(inputVariables[variable.Value]); 66 problemData.InputVariables.SetItemCheckedState(variable, isChecked); 67 67 } 68 68 … … 77 77 78 78 private IDataAnalysisProblemData CreateClassificationData(ClassificationProblemData oldProblemData) { 79 // target variable must be double and must exist in the new dataset 79 80 var targetVariable = oldProblemData.TargetVariable; 80 // target variable must be double and must exist in the new dataset 81 return new ClassificationProblemData(ExportedDataset, GetDoubleInputVariables(targetVariable), targetVariable, Transformations); 81 var newProblemData = new ClassificationProblemData(ExportedDataset, GetDoubleInputVariables(targetVariable), targetVariable, Transformations); 82 newProblemData.PositiveClass = oldProblemData.PositiveClass; 83 return newProblemData; 82 84 } 83 85
Note: See TracChangeset
for help on using the changeset viewer.