Changeset 15285
- Timestamp:
- 07/26/17 14:12:27 (7 years ago)
- Location:
- branches/DataPreprocessing Cleanup
- Files:
-
- 1 deleted
- 9 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing.Views/3.4/DataGridContentView.Designer.cs
r15210 r15285 54 54 this.mostCommonToolStripMenuItem_Column = new System.Windows.Forms.ToolStripMenuItem(); 55 55 this.interpolationToolStripMenuItem_Column = new System.Windows.Forms.ToolStripMenuItem(); 56 this.smoothingToolStripMenuItem_Column = new System.Windows.Forms.ToolStripMenuItem();57 56 this.replaceValueOverSelectionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 58 57 this.averageToolStripMenuItem_Selection = new System.Windows.Forms.ToolStripMenuItem(); … … 63 62 this.btnReplace = new System.Windows.Forms.Button(); 64 63 this.toolTip = new System.Windows.Forms.ToolTip(this.components); 65 this.checkInputsTargetButton = new System.Windows.Forms.Button(); 66 this.uncheckAllButton = new System.Windows.Forms.Button(); 67 this.checkAllButton = new System.Windows.Forms.Button(); 64 this.shuffleWithinPartitionsCheckBox = new System.Windows.Forms.CheckBox(); 68 65 this.addRowButton = new System.Windows.Forms.Button(); 69 66 this.addColumnButton = new System.Windows.Forms.Button(); 70 67 this.renameColumnsButton = new System.Windows.Forms.Button(); 71 68 this.showVariablesGroupBox = new System.Windows.Forms.GroupBox(); 69 this.shuffleAllButton = new System.Windows.Forms.Button(); 70 this.checkInputsTargetButton = new System.Windows.Forms.Button(); 71 this.uncheckAllButton = new System.Windows.Forms.Button(); 72 this.checkAllButton = new System.Windows.Forms.Button(); 72 73 ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit(); 73 74 this.contextMenuCell.SuspendLayout(); … … 127 128 this.randomToolStripMenuItem_Column, 128 129 this.mostCommonToolStripMenuItem_Column, 129 this.interpolationToolStripMenuItem_Column, 130 this.smoothingToolStripMenuItem_Column}); 130 this.interpolationToolStripMenuItem_Column}); 131 131 this.replaceValueOverColumnToolStripMenuItem.Name = "replaceValueOverColumnToolStripMenuItem"; 132 132 this.replaceValueOverColumnToolStripMenuItem.Size = new System.Drawing.Size(223, 22); … … 167 167 this.interpolationToolStripMenuItem_Column.Text = "Interpolation"; 168 168 this.interpolationToolStripMenuItem_Column.Click += new System.EventHandler(this.ReplaceWithInterpolation_Column_Click); 169 //170 // smoothingToolStripMenuItem_Column171 //172 this.smoothingToolStripMenuItem_Column.Name = "smoothingToolStripMenuItem_Column";173 this.smoothingToolStripMenuItem_Column.Size = new System.Drawing.Size(155, 22);174 this.smoothingToolStripMenuItem_Column.Text = "Smoothing";175 this.smoothingToolStripMenuItem_Column.Click += new System.EventHandler(this.ReplaceWithSmoothing_Selection_Click);176 169 // 177 170 // replaceValueOverSelectionToolStripMenuItem … … 236 229 this.btnReplace.Click += new System.EventHandler(this.btnReplace_Click); 237 230 // 231 // shuffleWithinPartitionsCheckBox 232 // 233 this.shuffleWithinPartitionsCheckBox.AutoSize = true; 234 this.shuffleWithinPartitionsCheckBox.Location = new System.Drawing.Point(444, 30); 235 this.shuffleWithinPartitionsCheckBox.Name = "shuffleWithinPartitionsCheckBox"; 236 this.shuffleWithinPartitionsCheckBox.Size = new System.Drawing.Size(102, 17); 237 this.shuffleWithinPartitionsCheckBox.TabIndex = 20; 238 this.shuffleWithinPartitionsCheckBox.Text = "Within Partitions"; 239 this.toolTip.SetToolTip(this.shuffleWithinPartitionsCheckBox, "If checked, the Training and Test partitions are shuffled separately. Otherwise a" + 240 "ll data is shuffled."); 241 this.shuffleWithinPartitionsCheckBox.UseVisualStyleBackColor = true; 242 // 243 // addRowButton 244 // 245 this.addRowButton.Location = new System.Drawing.Point(338, 26); 246 this.addRowButton.Name = "addRowButton"; 247 this.addRowButton.Size = new System.Drawing.Size(83, 23); 248 this.addRowButton.TabIndex = 10; 249 this.addRowButton.Text = "Add Datarow"; 250 this.addRowButton.UseVisualStyleBackColor = true; 251 this.addRowButton.Click += new System.EventHandler(this.addRowButton_Click); 252 // 253 // addColumnButton 254 // 255 this.addColumnButton.Location = new System.Drawing.Point(338, 0); 256 this.addColumnButton.Name = "addColumnButton"; 257 this.addColumnButton.Size = new System.Drawing.Size(83, 23); 258 this.addColumnButton.TabIndex = 10; 259 this.addColumnButton.Text = "Add Variable"; 260 this.addColumnButton.UseVisualStyleBackColor = true; 261 this.addColumnButton.Click += new System.EventHandler(this.addColumnButton_Click); 262 // 263 // renameColumnsButton 264 // 265 this.renameColumnsButton.Location = new System.Drawing.Point(228, 26); 266 this.renameColumnsButton.Name = "renameColumnsButton"; 267 this.renameColumnsButton.Size = new System.Drawing.Size(104, 23); 268 this.renameColumnsButton.TabIndex = 11; 269 this.renameColumnsButton.Text = "Rename Variables"; 270 this.renameColumnsButton.UseVisualStyleBackColor = true; 271 this.renameColumnsButton.Click += new System.EventHandler(this.renameColumnsButton_Click); 272 // 273 // showVariablesGroupBox 274 // 275 this.showVariablesGroupBox.Controls.Add(this.checkInputsTargetButton); 276 this.showVariablesGroupBox.Controls.Add(this.uncheckAllButton); 277 this.showVariablesGroupBox.Controls.Add(this.checkAllButton); 278 this.showVariablesGroupBox.Location = new System.Drawing.Point(564, 0); 279 this.showVariablesGroupBox.Name = "showVariablesGroupBox"; 280 this.showVariablesGroupBox.Size = new System.Drawing.Size(97, 49); 281 this.showVariablesGroupBox.TabIndex = 17; 282 this.showVariablesGroupBox.TabStop = false; 283 this.showVariablesGroupBox.Text = "Show Variables"; 284 // 285 // shuffleAllButton 286 // 287 this.shuffleAllButton.Location = new System.Drawing.Point(444, 0); 288 this.shuffleAllButton.Name = "shuffleAllButton"; 289 this.shuffleAllButton.Size = new System.Drawing.Size(102, 23); 290 this.shuffleAllButton.TabIndex = 19; 291 this.shuffleAllButton.Text = "Shuffle"; 292 this.shuffleAllButton.UseVisualStyleBackColor = true; 293 this.shuffleAllButton.Click += new System.EventHandler(this.shuffleAllButton_Click); 294 // 238 295 // checkInputsTargetButton 239 296 // … … 269 326 this.checkAllButton.Click += new System.EventHandler(this.checkAllButton_Click); 270 327 // 271 // addRowButton272 //273 this.addRowButton.Location = new System.Drawing.Point(338, 26);274 this.addRowButton.Name = "addRowButton";275 this.addRowButton.Size = new System.Drawing.Size(83, 23);276 this.addRowButton.TabIndex = 10;277 this.addRowButton.Text = "Add Datarow";278 this.addRowButton.UseVisualStyleBackColor = true;279 this.addRowButton.Click += new System.EventHandler(this.addRowButton_Click);280 //281 // addColumnButton282 //283 this.addColumnButton.Location = new System.Drawing.Point(338, 0);284 this.addColumnButton.Name = "addColumnButton";285 this.addColumnButton.Size = new System.Drawing.Size(83, 23);286 this.addColumnButton.TabIndex = 10;287 this.addColumnButton.Text = "Add Variable";288 this.addColumnButton.UseVisualStyleBackColor = true;289 this.addColumnButton.Click += new System.EventHandler(this.addColumnButton_Click);290 //291 // renameColumnsButton292 //293 this.renameColumnsButton.Location = new System.Drawing.Point(228, 26);294 this.renameColumnsButton.Name = "renameColumnsButton";295 this.renameColumnsButton.Size = new System.Drawing.Size(104, 23);296 this.renameColumnsButton.TabIndex = 11;297 this.renameColumnsButton.Text = "Rename Variables";298 this.renameColumnsButton.UseVisualStyleBackColor = true;299 this.renameColumnsButton.Click += new System.EventHandler(this.renameColumnsButton_Click);300 //301 // showVariablesGroupBox302 //303 this.showVariablesGroupBox.Controls.Add(this.checkInputsTargetButton);304 this.showVariablesGroupBox.Controls.Add(this.uncheckAllButton);305 this.showVariablesGroupBox.Controls.Add(this.checkAllButton);306 this.showVariablesGroupBox.Location = new System.Drawing.Point(448, 0);307 this.showVariablesGroupBox.Name = "showVariablesGroupBox";308 this.showVariablesGroupBox.Size = new System.Drawing.Size(97, 49);309 this.showVariablesGroupBox.TabIndex = 17;310 this.showVariablesGroupBox.TabStop = false;311 this.showVariablesGroupBox.Text = "Show Variables";312 //313 328 // DataGridContentView 314 329 // 315 330 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 316 331 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 332 this.Controls.Add(this.shuffleWithinPartitionsCheckBox); 333 this.Controls.Add(this.shuffleAllButton); 317 334 this.Controls.Add(this.showVariablesGroupBox); 318 335 this.Controls.Add(this.renameColumnsButton); … … 335 352 this.Controls.SetChildIndex(this.columnsTextBox, 0); 336 353 this.Controls.SetChildIndex(this.showVariablesGroupBox, 0); 354 this.Controls.SetChildIndex(this.shuffleAllButton, 0); 355 this.Controls.SetChildIndex(this.shuffleWithinPartitionsCheckBox, 0); 337 356 ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit(); 338 357 this.contextMenuCell.ResumeLayout(false); … … 361 380 private System.Windows.Forms.Button btnReplace; 362 381 private System.Windows.Forms.ToolTip toolTip; 363 private System.Windows.Forms.ToolStripMenuItem smoothingToolStripMenuItem_Column;364 382 private System.Windows.Forms.Button addRowButton; 365 383 private System.Windows.Forms.Button addColumnButton; … … 369 387 private System.Windows.Forms.Button uncheckAllButton; 370 388 private System.Windows.Forms.Button checkAllButton; 389 private System.Windows.Forms.Button shuffleAllButton; 390 private System.Windows.Forms.CheckBox shuffleWithinPartitionsCheckBox; 371 391 } 372 392 } -
branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing.Views/3.4/DataGridContentView.cs
r15274 r15285 248 248 } 249 249 250 private void btnApplySort_Click(object sender, System.EventArgs e) {251 Content. ManipulationLogic.ReOrderToIndices(virtualRowIndices);250 private void btnApplySort_Click(object sender, EventArgs e) { 251 Content.ReOrderToIndices(virtualRowIndices); 252 252 OnContentChanged(); 253 253 } … … 490 490 switch (findAndReplaceDialog.GetReplaceAction()) { 491 491 case ReplaceAction.Value: 492 Content. ManipulationLogic.ReplaceIndicesByValue(cells, findAndReplaceDialog.GetReplaceText());492 Content.ReplaceIndicesByString(cells, findAndReplaceDialog.GetReplaceText()); 493 493 break; 494 494 case ReplaceAction.Average: 495 Content. ManipulationLogic.ReplaceIndicesByAverageValue(cells, false);495 Content.ReplaceIndicesByMean(cells, false); 496 496 break; 497 497 case ReplaceAction.Median: 498 Content. ManipulationLogic.ReplaceIndicesByMedianValue(cells, false);498 Content.ReplaceIndicesByMedianValue(cells, false); 499 499 break; 500 500 case ReplaceAction.Random: 501 Content. ManipulationLogic.ReplaceIndicesByRandomValue(cells, false);501 Content.ReplaceIndicesByRandomValue(cells, false); 502 502 break; 503 503 case ReplaceAction.MostCommon: 504 Content. ManipulationLogic.ReplaceIndicesByMostCommonValue(cells, false);504 Content.ReplaceIndicesByMode(cells, false); 505 505 break; 506 506 case ReplaceAction.Interpolation: 507 Content. ManipulationLogic.ReplaceIndicesByLinearInterpolationOfNeighbours(cells);507 Content.ReplaceIndicesByLinearInterpolationOfNeighbours(cells); 508 508 break; 509 509 } … … 523 523 524 524 #endregion FindAndReplaceDialog 525 526 525 private void dataGridView_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e) { 527 526 if (Content == null) return; … … 550 549 randomToolStripMenuItem_Selection.Enabled = !Content.PreprocessingData.AreAllStringColumns(columnIndices); 551 550 552 smoothingToolStripMenuItem_Column.Enabled =553 interpolationToolStripMenuItem_Column.Enabled = !dataGridView.SelectedCells.Contains(dataGridView[e.ColumnIndex, 0])554 && !dataGridView.SelectedCells.Contains(dataGridView[e.ColumnIndex, Content.Rows - 1])555 && !Content.PreprocessingData.AreAllStringColumns(columnIndices);556 557 551 replaceValueOverColumnToolStripMenuItem.Visible = true; 558 552 contextMenuCell.Show(MousePosition); … … 598 592 } 599 593 600 foreach (var selectedCell in dataGridView.SelectedCells) { 601 var cell = (DataGridViewCell)selectedCell; 594 foreach (DataGridViewCell cell in dataGridView.SelectedCells) { 602 595 if (!selectedCells.ContainsKey(cell.ColumnIndex)) 603 selectedCells.Add(cell.ColumnIndex, new List<int>( 1024));596 selectedCells.Add(cell.ColumnIndex, new List<int>()); 604 597 selectedCells[cell.ColumnIndex].Add(cell.RowIndex); 605 598 } … … 608 601 } 609 602 610 private void StartReplacing() {603 private void ReplaceTransaction(Action action) { 611 604 SuspendRepaint(); 612 } 613 614 private void StopReplacing() { 605 action(); 615 606 ResumeRepaint(true); 616 }617 618 private void ReplaceTransaction(Action action) {619 StartReplacing();620 action();621 StopReplacing();622 607 } 623 608 … … 633 618 634 619 #region ContextMenu Events 635 636 620 private void ReplaceWithAverage_Column_Click(object sender, EventArgs e) { 637 621 ReplaceTransaction(() => { 638 Content. ManipulationLogic.ReplaceIndicesByAverageValue(GetSelectedCells(), false);622 Content.ReplaceIndicesByMean(GetSelectedCells(), false); 639 623 }); 640 624 } 641 625 private void ReplaceWithAverage_Selection_Click(object sender, EventArgs e) { 642 626 ReplaceTransaction(() => { 643 Content. ManipulationLogic.ReplaceIndicesByAverageValue(GetSelectedCells(), true);627 Content.ReplaceIndicesByMean(GetSelectedCells(), true); 644 628 }); 645 629 } … … 647 631 private void ReplaceWithMedian_Column_Click(object sender, EventArgs e) { 648 632 ReplaceTransaction(() => { 649 Content. ManipulationLogic.ReplaceIndicesByMedianValue(GetSelectedCells(), false);633 Content.ReplaceIndicesByMedianValue(GetSelectedCells(), false); 650 634 }); 651 635 } 652 636 private void ReplaceWithMedian_Selection_Click(object sender, EventArgs e) { 653 637 ReplaceTransaction(() => { 654 Content. ManipulationLogic.ReplaceIndicesByMedianValue(GetSelectedCells(), true);638 Content.ReplaceIndicesByMedianValue(GetSelectedCells(), true); 655 639 }); 656 640 } … … 658 642 private void ReplaceWithRandom_Column_Click(object sender, EventArgs e) { 659 643 ReplaceTransaction(() => { 660 Content. ManipulationLogic.ReplaceIndicesByRandomValue(GetSelectedCells(), false);644 Content.ReplaceIndicesByRandomValue(GetSelectedCells(), false); 661 645 }); 662 646 } 663 647 private void ReplaceWithRandom_Selection_Click(object sender, EventArgs e) { 664 648 ReplaceTransaction(() => { 665 Content. ManipulationLogic.ReplaceIndicesByRandomValue(GetSelectedCells(), true);649 Content.ReplaceIndicesByRandomValue(GetSelectedCells(), true); 666 650 }); 667 651 } … … 669 653 private void ReplaceWithMostCommon_Column_Click(object sender, EventArgs e) { 670 654 ReplaceTransaction(() => { 671 Content. ManipulationLogic.ReplaceIndicesByMostCommonValue(GetSelectedCells(), false);655 Content.ReplaceIndicesByMode(GetSelectedCells(), false); 672 656 }); 673 657 } 674 658 private void ReplaceWithMostCommon_Selection_Click(object sender, EventArgs e) { 675 659 ReplaceTransaction(() => { 676 Content. ManipulationLogic.ReplaceIndicesByMostCommonValue(GetSelectedCells(), true);660 Content.ReplaceIndicesByMode(GetSelectedCells(), true); 677 661 }); 678 662 } … … 680 664 private void ReplaceWithInterpolation_Column_Click(object sender, EventArgs e) { 681 665 ReplaceTransaction(() => { 682 Content.ManipulationLogic.ReplaceIndicesByLinearInterpolationOfNeighbours(GetSelectedCells()); 683 }); 684 } 685 686 private void ReplaceWithSmoothing_Selection_Click(object sender, EventArgs e) { 687 ReplaceTransaction(() => { 688 Content.ManipulationLogic.ReplaceIndicesBySmoothing(GetSelectedCells()); 666 Content.ReplaceIndicesByLinearInterpolationOfNeighbours(GetSelectedCells()); 689 667 }); 690 668 } … … 727 705 } 728 706 } 707 708 private void shuffleAllButton_Click(object sender, EventArgs e) { 709 Content.Shuffle(shuffleWithinPartitionsCheckBox.Checked); 710 } 729 711 } 730 712 } -
branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing.Views/3.4/DataPreprocessingView.cs
r15283 r15285 49 49 if (Content != null) { 50 50 var data = Content.Data; 51 var manipulationLogic = new ManipulationLogic(data);52 51 53 52 var viewShortcuts = new ItemList<IViewShortcut> { 54 new DataGridContent(data , manipulationLogic),53 new DataGridContent(data), 55 54 new StatisticsContent(data), 56 55 … … 63 62 64 63 new FilterContent(data), 65 new ManipulationContent(data , manipulationLogic),64 new ManipulationContent(data), 66 65 new TransformationContent(data) 67 66 }; -
branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing.Views/3.4/ManipulationView.Designer.cs
r14185 r15285 62 62 this.txtDeleteRowsInfo = new System.Windows.Forms.TextBox(); 63 63 this.label5 = new System.Windows.Forms.Label(); 64 this.tabReplaceMissingValues = new System.Windows.Forms.TabPage();65 this.txtReplaceValue = new System.Windows.Forms.TextBox();66 this.cmbVariableNames = new System.Windows.Forms.ComboBox();67 this.cmbReplaceWith = new System.Windows.Forms.ComboBox();68 this.lblValueColon = new System.Windows.Forms.Label();69 this.label8 = new System.Windows.Forms.Label();70 this.label10 = new System.Windows.Forms.Label();71 this.tabDataShuffle = new System.Windows.Forms.TabPage();72 this.shuffleSeparatelyCheckbox = new System.Windows.Forms.CheckBox();73 this.lblShuffleProperties = new System.Windows.Forms.Label();74 64 this.grpBoxPreview = new System.Windows.Forms.GroupBox(); 75 65 this.tabsPreview = new System.Windows.Forms.TabControl(); … … 77 67 this.lblPreviewInActive = new System.Windows.Forms.Label(); 78 68 this.tabPreviewDeleteColumnsInfo = new System.Windows.Forms.TabPage(); 69 this.panel1 = new System.Windows.Forms.Panel(); 79 70 this.lblPreviewColumnsInfo = new System.Windows.Forms.Label(); 80 71 this.tabPreviewDeleteColumnsVariance = new System.Windows.Forms.TabPage(); 72 this.panel2 = new System.Windows.Forms.Panel(); 73 this.lblPreviewColumnsVariance = new System.Windows.Forms.Label(); 81 74 this.label12 = new System.Windows.Forms.Label(); 82 this.lblPreviewColumnsVariance = new System.Windows.Forms.Label();83 75 this.tabPreviewDeleteRowsInfo = new System.Windows.Forms.TabPage(); 84 76 this.lblPreviewRowsInfo = new System.Windows.Forms.Label(); 85 this.tabPreviewReplaceMissingValues = new System.Windows.Forms.TabPage();86 this.lblPreviewReplaceMissingValues = new System.Windows.Forms.Label();87 this.tabPreviewShuffle = new System.Windows.Forms.TabPage();88 this.lblPreviewShuffle = new System.Windows.Forms.Label();89 77 this.label9 = new System.Windows.Forms.Label(); 90 this.panel1 = new System.Windows.Forms.Panel();91 this.panel2 = new System.Windows.Forms.Panel();92 78 this.grpBoxData.SuspendLayout(); 93 79 this.tabsData.SuspendLayout(); … … 96 82 this.tabDataDeleteColumnsVariance.SuspendLayout(); 97 83 this.tabDataDeleteRowsInfo.SuspendLayout(); 98 this.tabReplaceMissingValues.SuspendLayout();99 this.tabDataShuffle.SuspendLayout();100 84 this.grpBoxPreview.SuspendLayout(); 101 85 this.tabsPreview.SuspendLayout(); 102 86 this.tabPreviewInactive.SuspendLayout(); 103 87 this.tabPreviewDeleteColumnsInfo.SuspendLayout(); 88 this.panel1.SuspendLayout(); 104 89 this.tabPreviewDeleteColumnsVariance.SuspendLayout(); 90 this.panel2.SuspendLayout(); 105 91 this.tabPreviewDeleteRowsInfo.SuspendLayout(); 106 this.tabPreviewReplaceMissingValues.SuspendLayout();107 this.tabPreviewShuffle.SuspendLayout();108 this.panel1.SuspendLayout();109 this.panel2.SuspendLayout();110 92 this.SuspendLayout(); 111 93 // 112 94 // lstMethods 113 95 // 114 this.lstMethods.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 96 this.lstMethods.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 115 97 | System.Windows.Forms.AnchorStyles.Right))); 116 98 this.lstMethods.FormattingEnabled = true; 117 this.lstMethods.ItemHeight = 16;118 99 this.lstMethods.Items.AddRange(new object[] { 119 100 "Delete Columns with insufficient Information", 120 101 "Delete Columns with insufficient Variance", 121 "Delete Rows with insufficient Information", 122 "Replace Missing Values", 123 "Shuffle Data"}); 124 this.lstMethods.Location = new System.Drawing.Point(4, 4); 125 this.lstMethods.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 102 "Delete Rows with insufficient Information"}); 103 this.lstMethods.Location = new System.Drawing.Point(3, 3); 126 104 this.lstMethods.Name = "lstMethods"; 127 this.lstMethods.Size = new System.Drawing.Size( 976, 116);105 this.lstMethods.Size = new System.Drawing.Size(733, 95); 128 106 this.lstMethods.Sorted = true; 129 107 this.lstMethods.TabIndex = 0; … … 134 112 this.btnApply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); 135 113 this.btnApply.Enabled = false; 136 this.btnApply.Location = new System.Drawing.Point(804, 615); 137 this.btnApply.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 114 this.btnApply.Location = new System.Drawing.Point(603, 500); 138 115 this.btnApply.Name = "btnApply"; 139 this.btnApply.Size = new System.Drawing.Size(1 72, 28);116 this.btnApply.Size = new System.Drawing.Size(129, 23); 140 117 this.btnApply.TabIndex = 2; 141 118 this.btnApply.Text = "Apply Manipulation"; … … 145 122 // grpBoxData 146 123 // 147 this.grpBoxData.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 124 this.grpBoxData.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 148 125 | System.Windows.Forms.AnchorStyles.Right))); 149 126 this.grpBoxData.Controls.Add(this.tabsData); 150 this.grpBoxData.Location = new System.Drawing.Point(5, 129); 151 this.grpBoxData.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 127 this.grpBoxData.Location = new System.Drawing.Point(4, 105); 152 128 this.grpBoxData.Name = "grpBoxData"; 153 this.grpBoxData.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); 154 this.grpBoxData.Size = new System.Drawing.Size(976, 233); 129 this.grpBoxData.Size = new System.Drawing.Size(732, 189); 155 130 this.grpBoxData.TabIndex = 3; 156 131 this.grpBoxData.TabStop = false; … … 159 134 // tabsData 160 135 // 161 this.tabsData.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 136 this.tabsData.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 162 137 | System.Windows.Forms.AnchorStyles.Right))); 163 138 this.tabsData.Controls.Add(this.tabPage1); … … 165 140 this.tabsData.Controls.Add(this.tabDataDeleteColumnsVariance); 166 141 this.tabsData.Controls.Add(this.tabDataDeleteRowsInfo); 167 this.tabsData.Controls.Add(this.tabReplaceMissingValues);168 this.tabsData.Controls.Add(this.tabDataShuffle);169 142 this.tabsData.ItemSize = new System.Drawing.Size(58, 18); 170 this.tabsData.Location = new System.Drawing.Point(8, 23); 171 this.tabsData.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 143 this.tabsData.Location = new System.Drawing.Point(6, 19); 172 144 this.tabsData.Name = "tabsData"; 173 145 this.tabsData.SelectedIndex = 0; 174 this.tabsData.Size = new System.Drawing.Size( 959, 202);146 this.tabsData.Size = new System.Drawing.Size(719, 164); 175 147 this.tabsData.TabIndex = 3; 176 148 // … … 179 151 this.tabPage1.Controls.Add(this.label7); 180 152 this.tabPage1.Location = new System.Drawing.Point(4, 22); 181 this.tabPage1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);182 153 this.tabPage1.Name = "tabPage1"; 183 this.tabPage1.Padding = new System.Windows.Forms.Padding( 4, 4, 4, 4);184 this.tabPage1.Size = new System.Drawing.Size( 951, 176);154 this.tabPage1.Padding = new System.Windows.Forms.Padding(3); 155 this.tabPage1.Size = new System.Drawing.Size(711, 138); 185 156 this.tabPage1.TabIndex = 5; 186 157 this.tabPage1.Text = "tabDataInactive"; … … 191 162 this.label7.AutoSize = true; 192 163 this.label7.Enabled = false; 193 this.label7.Location = new System.Drawing.Point(4, 4); 194 this.label7.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 164 this.label7.Location = new System.Drawing.Point(3, 3); 195 165 this.label7.Name = "label7"; 196 this.label7.Size = new System.Drawing.Size( 345, 17);166 this.label7.Size = new System.Drawing.Size(259, 13); 197 167 this.label7.TabIndex = 1; 198 168 this.label7.Text = "Please select one of the manipulation methods above"; … … 204 174 this.tabDataDeleteColumnsInformation.Controls.Add(this.label1); 205 175 this.tabDataDeleteColumnsInformation.Location = new System.Drawing.Point(4, 22); 206 this.tabDataDeleteColumnsInformation.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);207 176 this.tabDataDeleteColumnsInformation.Name = "tabDataDeleteColumnsInformation"; 208 this.tabDataDeleteColumnsInformation.Padding = new System.Windows.Forms.Padding( 4, 4, 4, 4);209 this.tabDataDeleteColumnsInformation.Size = new System.Drawing.Size( 951, 176);177 this.tabDataDeleteColumnsInformation.Padding = new System.Windows.Forms.Padding(3); 178 this.tabDataDeleteColumnsInformation.Size = new System.Drawing.Size(711, 138); 210 179 this.tabDataDeleteColumnsInformation.TabIndex = 0; 211 180 this.tabDataDeleteColumnsInformation.Text = "del columns info"; … … 215 184 // 216 185 this.label2.AutoSize = true; 217 this.label2.Location = new System.Drawing.Point(272, 4); 218 this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 186 this.label2.Location = new System.Drawing.Point(204, 3); 219 187 this.label2.Name = "label2"; 220 this.label2.Size = new System.Drawing.Size( 120, 17);188 this.label2.Size = new System.Drawing.Size(89, 13); 221 189 this.label2.TabIndex = 5; 222 190 this.label2.Text = "% missing values."; … … 224 192 // txtDeleteColumnsInfo 225 193 // 226 this.txtDeleteColumnsInfo.Location = new System.Drawing.Point(219, 0); 227 this.txtDeleteColumnsInfo.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 194 this.txtDeleteColumnsInfo.Location = new System.Drawing.Point(164, 0); 228 195 this.txtDeleteColumnsInfo.Name = "txtDeleteColumnsInfo"; 229 this.txtDeleteColumnsInfo.Size = new System.Drawing.Size( 44, 22);196 this.txtDeleteColumnsInfo.Size = new System.Drawing.Size(34, 20); 230 197 this.txtDeleteColumnsInfo.TabIndex = 4; 231 198 this.txtDeleteColumnsInfo.TextChanged += new System.EventHandler(this.txtDeleteColumnsInfo_TextChanged); … … 234 201 // 235 202 this.label1.AutoSize = true; 236 this.label1.Location = new System.Drawing.Point(4, 4); 237 this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 203 this.label1.Location = new System.Drawing.Point(3, 3); 238 204 this.label1.Name = "label1"; 239 this.label1.Size = new System.Drawing.Size( 205, 17);205 this.label1.Size = new System.Drawing.Size(155, 13); 240 206 this.label1.TabIndex = 3; 241 207 this.label1.Text = "Delete columns with more than "; … … 246 212 this.tabDataDeleteColumnsVariance.Controls.Add(this.label4); 247 213 this.tabDataDeleteColumnsVariance.Location = new System.Drawing.Point(4, 22); 248 this.tabDataDeleteColumnsVariance.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);249 214 this.tabDataDeleteColumnsVariance.Name = "tabDataDeleteColumnsVariance"; 250 this.tabDataDeleteColumnsVariance.Padding = new System.Windows.Forms.Padding( 4, 4, 4, 4);251 this.tabDataDeleteColumnsVariance.Size = new System.Drawing.Size( 951, 176);215 this.tabDataDeleteColumnsVariance.Padding = new System.Windows.Forms.Padding(3); 216 this.tabDataDeleteColumnsVariance.Size = new System.Drawing.Size(711, 138); 252 217 this.tabDataDeleteColumnsVariance.TabIndex = 1; 253 218 this.tabDataDeleteColumnsVariance.Text = "del columns variance"; … … 256 221 // txtDeleteColumnsVariance 257 222 // 258 this.txtDeleteColumnsVariance.Location = new System.Drawing.Point(305, 0); 259 this.txtDeleteColumnsVariance.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 223 this.txtDeleteColumnsVariance.Location = new System.Drawing.Point(229, 0); 260 224 this.txtDeleteColumnsVariance.Name = "txtDeleteColumnsVariance"; 261 this.txtDeleteColumnsVariance.Size = new System.Drawing.Size(1 79, 22);225 this.txtDeleteColumnsVariance.Size = new System.Drawing.Size(135, 20); 262 226 this.txtDeleteColumnsVariance.TabIndex = 4; 263 227 this.txtDeleteColumnsVariance.TextChanged += new System.EventHandler(this.txtDeleteColumnsVariance_TextChanged); … … 266 230 // 267 231 this.label4.AutoSize = true; 268 this.label4.Location = new System.Drawing.Point(4, 4); 269 this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 232 this.label4.Location = new System.Drawing.Point(3, 3); 270 233 this.label4.Name = "label4"; 271 this.label4.Size = new System.Drawing.Size(2 92, 17);234 this.label4.Size = new System.Drawing.Size(220, 13); 272 235 this.label4.TabIndex = 3; 273 236 this.label4.Text = "Delete columns with a variance smaller than "; … … 279 242 this.tabDataDeleteRowsInfo.Controls.Add(this.label5); 280 243 this.tabDataDeleteRowsInfo.Location = new System.Drawing.Point(4, 22); 281 this.tabDataDeleteRowsInfo.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);282 244 this.tabDataDeleteRowsInfo.Name = "tabDataDeleteRowsInfo"; 283 this.tabDataDeleteRowsInfo.Padding = new System.Windows.Forms.Padding( 4, 4, 4, 4);284 this.tabDataDeleteRowsInfo.Size = new System.Drawing.Size( 951, 176);245 this.tabDataDeleteRowsInfo.Padding = new System.Windows.Forms.Padding(3); 246 this.tabDataDeleteRowsInfo.Size = new System.Drawing.Size(711, 138); 285 247 this.tabDataDeleteRowsInfo.TabIndex = 2; 286 248 this.tabDataDeleteRowsInfo.Text = "del rows info"; … … 290 252 // 291 253 this.label3.AutoSize = true; 292 this.label3.Location = new System.Drawing.Point(252, 4); 293 this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 254 this.label3.Location = new System.Drawing.Point(189, 3); 294 255 this.label3.Name = "label3"; 295 this.label3.Size = new System.Drawing.Size( 120, 17);256 this.label3.Size = new System.Drawing.Size(89, 13); 296 257 this.label3.TabIndex = 8; 297 258 this.label3.Text = "% missing values."; … … 299 260 // txtDeleteRowsInfo 300 261 // 301 this.txtDeleteRowsInfo.Location = new System.Drawing.Point(196, 0); 302 this.txtDeleteRowsInfo.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 262 this.txtDeleteRowsInfo.Location = new System.Drawing.Point(147, 0); 303 263 this.txtDeleteRowsInfo.Name = "txtDeleteRowsInfo"; 304 this.txtDeleteRowsInfo.Size = new System.Drawing.Size( 44, 22);264 this.txtDeleteRowsInfo.Size = new System.Drawing.Size(34, 20); 305 265 this.txtDeleteRowsInfo.TabIndex = 7; 306 266 this.txtDeleteRowsInfo.TextChanged += new System.EventHandler(this.txtDeleteRowsInfo_TextChanged); … … 309 269 // 310 270 this.label5.AutoSize = true; 311 this.label5.Location = new System.Drawing.Point(4, 4); 312 this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 271 this.label5.Location = new System.Drawing.Point(3, 3); 313 272 this.label5.Name = "label5"; 314 this.label5.Size = new System.Drawing.Size(1 82, 17);273 this.label5.Size = new System.Drawing.Size(138, 13); 315 274 this.label5.TabIndex = 6; 316 275 this.label5.Text = "Delete rows with more than "; 317 276 // 318 // tabReplaceMissingValues319 //320 this.tabReplaceMissingValues.Controls.Add(this.txtReplaceValue);321 this.tabReplaceMissingValues.Controls.Add(this.cmbVariableNames);322 this.tabReplaceMissingValues.Controls.Add(this.cmbReplaceWith);323 this.tabReplaceMissingValues.Controls.Add(this.lblValueColon);324 this.tabReplaceMissingValues.Controls.Add(this.label8);325 this.tabReplaceMissingValues.Controls.Add(this.label10);326 this.tabReplaceMissingValues.Location = new System.Drawing.Point(4, 22);327 this.tabReplaceMissingValues.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);328 this.tabReplaceMissingValues.Name = "tabReplaceMissingValues";329 this.tabReplaceMissingValues.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4);330 this.tabReplaceMissingValues.Size = new System.Drawing.Size(951, 176);331 this.tabReplaceMissingValues.TabIndex = 6;332 this.tabReplaceMissingValues.Text = "repl missing vals";333 this.tabReplaceMissingValues.UseVisualStyleBackColor = true;334 //335 // txtReplaceValue336 //337 this.txtReplaceValue.Location = new System.Drawing.Point(231, 33);338 this.txtReplaceValue.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);339 this.txtReplaceValue.Name = "txtReplaceValue";340 this.txtReplaceValue.Size = new System.Drawing.Size(132, 22);341 this.txtReplaceValue.TabIndex = 2;342 this.txtReplaceValue.TextChanged += new System.EventHandler(this.txtReplaceValue_TextChanged);343 //344 // cmbVariableNames345 //346 this.cmbVariableNames.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;347 this.cmbVariableNames.FormattingEnabled = true;348 this.cmbVariableNames.Location = new System.Drawing.Point(189, 0);349 this.cmbVariableNames.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);350 this.cmbVariableNames.Name = "cmbVariableNames";351 this.cmbVariableNames.Size = new System.Drawing.Size(160, 24);352 this.cmbVariableNames.TabIndex = 1;353 this.cmbVariableNames.SelectedIndexChanged += new System.EventHandler(this.cmbReplaceWith_SelectedIndexChanged);354 //355 // cmbReplaceWith356 //357 this.cmbReplaceWith.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;358 this.cmbReplaceWith.FormattingEnabled = true;359 this.cmbReplaceWith.Items.AddRange(new object[] {360 "Value",361 "Average",362 "Median",363 "Most Common",364 "Random"});365 this.cmbReplaceWith.Location = new System.Drawing.Point(47, 33);366 this.cmbReplaceWith.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);367 this.cmbReplaceWith.Name = "cmbReplaceWith";368 this.cmbReplaceWith.Size = new System.Drawing.Size(160, 24);369 this.cmbReplaceWith.TabIndex = 1;370 this.cmbReplaceWith.SelectedIndexChanged += new System.EventHandler(this.cmbReplaceWith_SelectedIndexChanged);371 //372 // lblValueColon373 //374 this.lblValueColon.AutoSize = true;375 this.lblValueColon.Location = new System.Drawing.Point(209, 37);376 this.lblValueColon.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);377 this.lblValueColon.Name = "lblValueColon";378 this.lblValueColon.Size = new System.Drawing.Size(12, 17);379 this.lblValueColon.TabIndex = 0;380 this.lblValueColon.Text = ":";381 //382 // label8383 //384 this.label8.AutoSize = true;385 this.label8.Location = new System.Drawing.Point(4, 37);386 this.label8.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);387 this.label8.Name = "label8";388 this.label8.Size = new System.Drawing.Size(32, 17);389 this.label8.TabIndex = 0;390 this.label8.Text = "with";391 //392 // label10393 //394 this.label10.AutoSize = true;395 this.label10.Location = new System.Drawing.Point(4, 4);396 this.label10.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);397 this.label10.Name = "label10";398 this.label10.Size = new System.Drawing.Size(177, 17);399 this.label10.TabIndex = 0;400 this.label10.Text = "Replace missing values for";401 //402 // tabDataShuffle403 //404 this.tabDataShuffle.Controls.Add(this.shuffleSeparatelyCheckbox);405 this.tabDataShuffle.Controls.Add(this.lblShuffleProperties);406 this.tabDataShuffle.Location = new System.Drawing.Point(4, 22);407 this.tabDataShuffle.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);408 this.tabDataShuffle.Name = "tabDataShuffle";409 this.tabDataShuffle.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4);410 this.tabDataShuffle.Size = new System.Drawing.Size(951, 176);411 this.tabDataShuffle.TabIndex = 4;412 this.tabDataShuffle.Text = "shuffle";413 this.tabDataShuffle.UseVisualStyleBackColor = true;414 //415 // shuffleSeparatelyCheckbox416 //417 this.shuffleSeparatelyCheckbox.AutoSize = true;418 this.shuffleSeparatelyCheckbox.Location = new System.Drawing.Point(8, 2);419 this.shuffleSeparatelyCheckbox.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);420 this.shuffleSeparatelyCheckbox.Name = "shuffleSeparatelyCheckbox";421 this.shuffleSeparatelyCheckbox.Size = new System.Drawing.Size(312, 21);422 this.shuffleSeparatelyCheckbox.TabIndex = 1;423 this.shuffleSeparatelyCheckbox.Text = "Shuffle training and test partitions separately";424 this.shuffleSeparatelyCheckbox.UseVisualStyleBackColor = true;425 //426 // lblShuffleProperties427 //428 this.lblShuffleProperties.AutoSize = true;429 this.lblShuffleProperties.Enabled = false;430 this.lblShuffleProperties.Location = new System.Drawing.Point(4, 4);431 this.lblShuffleProperties.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);432 this.lblShuffleProperties.Name = "lblShuffleProperties";433 this.lblShuffleProperties.Size = new System.Drawing.Size(154, 17);434 this.lblShuffleProperties.TabIndex = 0;435 this.lblShuffleProperties.Text = "No properties available";436 //437 277 // grpBoxPreview 438 278 // 439 this.grpBoxPreview.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 440 | System.Windows.Forms.AnchorStyles.Left) 279 this.grpBoxPreview.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 280 | System.Windows.Forms.AnchorStyles.Left) 441 281 | System.Windows.Forms.AnchorStyles.Right))); 442 282 this.grpBoxPreview.Controls.Add(this.tabsPreview); 443 this.grpBoxPreview.Location = new System.Drawing.Point(5, 370); 444 this.grpBoxPreview.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 283 this.grpBoxPreview.Location = new System.Drawing.Point(4, 301); 445 284 this.grpBoxPreview.Name = "grpBoxPreview"; 446 this.grpBoxPreview.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); 447 this.grpBoxPreview.Size = new System.Drawing.Size(976, 238); 285 this.grpBoxPreview.Size = new System.Drawing.Size(732, 193); 448 286 this.grpBoxPreview.TabIndex = 4; 449 287 this.grpBoxPreview.TabStop = false; … … 452 290 // tabsPreview 453 291 // 454 this.tabsPreview.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 292 this.tabsPreview.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 455 293 | System.Windows.Forms.AnchorStyles.Right))); 456 294 this.tabsPreview.Controls.Add(this.tabPreviewInactive); … … 458 296 this.tabsPreview.Controls.Add(this.tabPreviewDeleteColumnsVariance); 459 297 this.tabsPreview.Controls.Add(this.tabPreviewDeleteRowsInfo); 460 this.tabsPreview.Controls.Add(this.tabPreviewReplaceMissingValues);461 this.tabsPreview.Controls.Add(this.tabPreviewShuffle);462 298 this.tabsPreview.ItemSize = new System.Drawing.Size(58, 18); 463 this.tabsPreview.Location = new System.Drawing.Point(8, 23); 464 this.tabsPreview.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); 299 this.tabsPreview.Location = new System.Drawing.Point(6, 19); 465 300 this.tabsPreview.Name = "tabsPreview"; 466 301 this.tabsPreview.SelectedIndex = 0; 467 this.tabsPreview.Size = new System.Drawing.Size( 959, 207);302 this.tabsPreview.Size = new System.Drawing.Size(719, 168); 468 303 this.tabsPreview.TabIndex = 3; 469 304 // … … 472 307 this.tabPreviewInactive.Controls.Add(this.lblPreviewInActive); 473 308 this.tabPreviewInactive.Location = new System.Drawing.Point(4, 22); 474 this.tabPreviewInactive.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);475 309 this.tabPreviewInactive.Name = "tabPreviewInactive"; 476 this.tabPreviewInactive.Padding = new System.Windows.Forms.Padding( 4, 4, 4, 4);477 this.tabPreviewInactive.Size = new System.Drawing.Size( 951, 181);310 this.tabPreviewInactive.Padding = new System.Windows.Forms.Padding(3); 311 this.tabPreviewInactive.Size = new System.Drawing.Size(711, 142); 478 312 this.tabPreviewInactive.TabIndex = 5; 479 313 this.tabPreviewInactive.Text = "inactive"; … … 483 317 // 484 318 this.lblPreviewInActive.AutoSize = true; 485 this.lblPreviewInActive.Location = new System.Drawing.Point(4, 4); 486 this.lblPreviewInActive.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 319 this.lblPreviewInActive.Location = new System.Drawing.Point(3, 3); 487 320 this.lblPreviewInActive.Name = "lblPreviewInActive"; 488 this.lblPreviewInActive.Size = new System.Drawing.Size( 491, 51);321 this.lblPreviewInActive.Size = new System.Drawing.Size(361, 39); 489 322 this.lblPreviewInActive.TabIndex = 2; 490 323 this.lblPreviewInActive.Text = "Filters are active and thus manipulations cannot be applied!\r\n\r\nPlease deactive t" + … … 496 329 this.tabPreviewDeleteColumnsInfo.Controls.Add(this.panel1); 497 330 this.tabPreviewDeleteColumnsInfo.Location = new System.Drawing.Point(4, 22); 498 this.tabPreviewDeleteColumnsInfo.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);499 331 this.tabPreviewDeleteColumnsInfo.Name = "tabPreviewDeleteColumnsInfo"; 500 this.tabPreviewDeleteColumnsInfo.Padding = new System.Windows.Forms.Padding( 4, 4, 4, 4);501 this.tabPreviewDeleteColumnsInfo.Size = new System.Drawing.Size( 951, 181);332 this.tabPreviewDeleteColumnsInfo.Padding = new System.Windows.Forms.Padding(3); 333 this.tabPreviewDeleteColumnsInfo.Size = new System.Drawing.Size(711, 142); 502 334 this.tabPreviewDeleteColumnsInfo.TabIndex = 0; 503 335 this.tabPreviewDeleteColumnsInfo.Text = "del columns info"; 504 336 this.tabPreviewDeleteColumnsInfo.UseVisualStyleBackColor = true; 505 337 // 338 // panel1 339 // 340 this.panel1.AutoScroll = true; 341 this.panel1.Controls.Add(this.lblPreviewColumnsInfo); 342 this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; 343 this.panel1.Location = new System.Drawing.Point(3, 3); 344 this.panel1.Margin = new System.Windows.Forms.Padding(2); 345 this.panel1.Name = "panel1"; 346 this.panel1.Size = new System.Drawing.Size(705, 136); 347 this.panel1.TabIndex = 2; 348 // 506 349 // lblPreviewColumnsInfo 507 350 // … … 509 352 this.lblPreviewColumnsInfo.Dock = System.Windows.Forms.DockStyle.Left; 510 353 this.lblPreviewColumnsInfo.Location = new System.Drawing.Point(0, 0); 511 this.lblPreviewColumnsInfo.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);512 354 this.lblPreviewColumnsInfo.Name = "lblPreviewColumnsInfo"; 513 this.lblPreviewColumnsInfo.Size = new System.Drawing.Size( 423, 17);355 this.lblPreviewColumnsInfo.Size = new System.Drawing.Size(318, 13); 514 356 this.lblPreviewColumnsInfo.TabIndex = 1; 515 357 this.lblPreviewColumnsInfo.Text = "{0} columns with more than {1} % missing values would be deleted"; … … 520 362 this.tabPreviewDeleteColumnsVariance.Controls.Add(this.label12); 521 363 this.tabPreviewDeleteColumnsVariance.Location = new System.Drawing.Point(4, 22); 522 this.tabPreviewDeleteColumnsVariance.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);523 364 this.tabPreviewDeleteColumnsVariance.Name = "tabPreviewDeleteColumnsVariance"; 524 this.tabPreviewDeleteColumnsVariance.Padding = new System.Windows.Forms.Padding( 4, 4, 4, 4);525 this.tabPreviewDeleteColumnsVariance.Size = new System.Drawing.Size( 951, 181);365 this.tabPreviewDeleteColumnsVariance.Padding = new System.Windows.Forms.Padding(3); 366 this.tabPreviewDeleteColumnsVariance.Size = new System.Drawing.Size(711, 142); 526 367 this.tabPreviewDeleteColumnsVariance.TabIndex = 1; 527 368 this.tabPreviewDeleteColumnsVariance.Text = "del columns variance"; 528 369 this.tabPreviewDeleteColumnsVariance.UseVisualStyleBackColor = true; 529 370 // 530 // label12 531 // 532 this.label12.AutoSize = true; 533 this.label12.Location = new System.Drawing.Point(8, 27); 534 this.label12.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 535 this.label12.Name = "label12"; 536 this.label12.Size = new System.Drawing.Size(0, 17); 537 this.label12.TabIndex = 2; 371 // panel2 372 // 373 this.panel2.AutoScroll = true; 374 this.panel2.Controls.Add(this.lblPreviewColumnsVariance); 375 this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; 376 this.panel2.Location = new System.Drawing.Point(3, 3); 377 this.panel2.Margin = new System.Windows.Forms.Padding(2); 378 this.panel2.Name = "panel2"; 379 this.panel2.Size = new System.Drawing.Size(705, 136); 380 this.panel2.TabIndex = 3; 538 381 // 539 382 // lblPreviewColumnsVariance … … 542 385 this.lblPreviewColumnsVariance.Dock = System.Windows.Forms.DockStyle.Left; 543 386 this.lblPreviewColumnsVariance.Location = new System.Drawing.Point(0, 0); 544 this.lblPreviewColumnsVariance.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);545 387 this.lblPreviewColumnsVariance.Name = "lblPreviewColumnsVariance"; 546 this.lblPreviewColumnsVariance.Size = new System.Drawing.Size(3 98, 17);388 this.lblPreviewColumnsVariance.Size = new System.Drawing.Size(301, 13); 547 389 this.lblPreviewColumnsVariance.TabIndex = 2; 548 390 this.lblPreviewColumnsVariance.Text = "{0} columns with a variance smaller than {1} would be deleted."; 549 391 // 392 // label12 393 // 394 this.label12.AutoSize = true; 395 this.label12.Location = new System.Drawing.Point(6, 22); 396 this.label12.Name = "label12"; 397 this.label12.Size = new System.Drawing.Size(0, 13); 398 this.label12.TabIndex = 2; 399 // 550 400 // tabPreviewDeleteRowsInfo 551 401 // 552 402 this.tabPreviewDeleteRowsInfo.Controls.Add(this.lblPreviewRowsInfo); 553 403 this.tabPreviewDeleteRowsInfo.Location = new System.Drawing.Point(4, 22); 554 this.tabPreviewDeleteRowsInfo.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);555 404 this.tabPreviewDeleteRowsInfo.Name = "tabPreviewDeleteRowsInfo"; 556 this.tabPreviewDeleteRowsInfo.Padding = new System.Windows.Forms.Padding( 4, 4, 4, 4);557 this.tabPreviewDeleteRowsInfo.Size = new System.Drawing.Size( 951, 181);405 this.tabPreviewDeleteRowsInfo.Padding = new System.Windows.Forms.Padding(3); 406 this.tabPreviewDeleteRowsInfo.Size = new System.Drawing.Size(711, 142); 558 407 this.tabPreviewDeleteRowsInfo.TabIndex = 2; 559 408 this.tabPreviewDeleteRowsInfo.Text = "del rows info"; … … 563 412 // 564 413 this.lblPreviewRowsInfo.AutoSize = true; 565 this.lblPreviewRowsInfo.Location = new System.Drawing.Point(4, 4); 566 this.lblPreviewRowsInfo.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); 414 this.lblPreviewRowsInfo.Location = new System.Drawing.Point(3, 3); 567 415 this.lblPreviewRowsInfo.Name = "lblPreviewRowsInfo"; 568 this.lblPreviewRowsInfo.Size = new System.Drawing.Size( 400, 17);416 this.lblPreviewRowsInfo.Size = new System.Drawing.Size(301, 13); 569 417 this.lblPreviewRowsInfo.TabIndex = 2; 570 418 this.lblPreviewRowsInfo.Text = "{0} rows with more than {1} % missing values would be deleted"; 571 //572 // tabPreviewReplaceMissingValues573 //574 this.tabPreviewReplaceMissingValues.Controls.Add(this.lblPreviewReplaceMissingValues);575 this.tabPreviewReplaceMissingValues.Location = new System.Drawing.Point(4, 22);576 this.tabPreviewReplaceMissingValues.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);577 this.tabPreviewReplaceMissingValues.Name = "tabPreviewReplaceMissingValues";578 this.tabPreviewReplaceMissingValues.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4);579 this.tabPreviewReplaceMissingValues.Size = new System.Drawing.Size(951, 181);580 this.tabPreviewReplaceMissingValues.TabIndex = 6;581 this.tabPreviewReplaceMissingValues.Text = "repl missing vals";582 this.tabPreviewReplaceMissingValues.UseVisualStyleBackColor = true;583 //584 // lblPreviewReplaceMissingValues585 //586 this.lblPreviewReplaceMissingValues.AutoSize = true;587 this.lblPreviewReplaceMissingValues.Location = new System.Drawing.Point(4, 4);588 this.lblPreviewReplaceMissingValues.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);589 this.lblPreviewReplaceMissingValues.Name = "lblPreviewReplaceMissingValues";590 this.lblPreviewReplaceMissingValues.Size = new System.Drawing.Size(449, 17);591 this.lblPreviewReplaceMissingValues.TabIndex = 3;592 this.lblPreviewReplaceMissingValues.Text = "{0} cells detected with missing values which would be replaced with {1}";593 //594 // tabPreviewShuffle595 //596 this.tabPreviewShuffle.Controls.Add(this.lblPreviewShuffle);597 this.tabPreviewShuffle.Location = new System.Drawing.Point(4, 22);598 this.tabPreviewShuffle.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);599 this.tabPreviewShuffle.Name = "tabPreviewShuffle";600 this.tabPreviewShuffle.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4);601 this.tabPreviewShuffle.Size = new System.Drawing.Size(951, 181);602 this.tabPreviewShuffle.TabIndex = 4;603 this.tabPreviewShuffle.Text = "shuffle";604 this.tabPreviewShuffle.UseVisualStyleBackColor = true;605 //606 // lblPreviewShuffle607 //608 this.lblPreviewShuffle.AutoSize = true;609 this.lblPreviewShuffle.Location = new System.Drawing.Point(4, 4);610 this.lblPreviewShuffle.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);611 this.lblPreviewShuffle.Name = "lblPreviewShuffle";612 this.lblPreviewShuffle.Size = new System.Drawing.Size(337, 17);613 this.lblPreviewShuffle.TabIndex = 0;614 this.lblPreviewShuffle.Text = "Data will be shuffled randomly - preview not possible";615 419 // 616 420 // label9 … … 621 425 this.label9.TabIndex = 0; 622 426 // 623 // panel1624 //625 this.panel1.AutoScroll = true;626 this.panel1.Controls.Add(this.lblPreviewColumnsInfo);627 this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;628 this.panel1.Location = new System.Drawing.Point(4, 4);629 this.panel1.Name = "panel1";630 this.panel1.Size = new System.Drawing.Size(943, 173);631 this.panel1.TabIndex = 2;632 //633 // panel2634 //635 this.panel2.AutoScroll = true;636 this.panel2.Controls.Add(this.lblPreviewColumnsVariance);637 this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;638 this.panel2.Location = new System.Drawing.Point(4, 4);639 this.panel2.Name = "panel2";640 this.panel2.Size = new System.Drawing.Size(943, 173);641 this.panel2.TabIndex = 3;642 //643 427 // ManipulationView 644 428 // 645 this.AutoScaleDimensions = new System.Drawing.SizeF( 8F, 16F);429 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 646 430 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 647 431 this.Controls.Add(this.btnApply); … … 649 433 this.Controls.Add(this.grpBoxData); 650 434 this.Controls.Add(this.lstMethods); 651 this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);652 435 this.Name = "ManipulationView"; 653 this.Size = new System.Drawing.Size( 985, 651);436 this.Size = new System.Drawing.Size(739, 529); 654 437 this.grpBoxData.ResumeLayout(false); 655 438 this.tabsData.ResumeLayout(false); … … 662 445 this.tabDataDeleteRowsInfo.ResumeLayout(false); 663 446 this.tabDataDeleteRowsInfo.PerformLayout(); 664 this.tabReplaceMissingValues.ResumeLayout(false);665 this.tabReplaceMissingValues.PerformLayout();666 this.tabDataShuffle.ResumeLayout(false);667 this.tabDataShuffle.PerformLayout();668 447 this.grpBoxPreview.ResumeLayout(false); 669 448 this.tabsPreview.ResumeLayout(false); … … 671 450 this.tabPreviewInactive.PerformLayout(); 672 451 this.tabPreviewDeleteColumnsInfo.ResumeLayout(false); 452 this.panel1.ResumeLayout(false); 453 this.panel1.PerformLayout(); 673 454 this.tabPreviewDeleteColumnsVariance.ResumeLayout(false); 674 455 this.tabPreviewDeleteColumnsVariance.PerformLayout(); 456 this.panel2.ResumeLayout(false); 457 this.panel2.PerformLayout(); 675 458 this.tabPreviewDeleteRowsInfo.ResumeLayout(false); 676 459 this.tabPreviewDeleteRowsInfo.PerformLayout(); 677 this.tabPreviewReplaceMissingValues.ResumeLayout(false);678 this.tabPreviewReplaceMissingValues.PerformLayout();679 this.tabPreviewShuffle.ResumeLayout(false);680 this.tabPreviewShuffle.PerformLayout();681 this.panel1.ResumeLayout(false);682 this.panel1.PerformLayout();683 this.panel2.ResumeLayout(false);684 this.panel2.PerformLayout();685 460 this.ResumeLayout(false); 686 461 … … 697 472 private System.Windows.Forms.TabPage tabPreviewDeleteColumnsVariance; 698 473 private System.Windows.Forms.TabPage tabPreviewDeleteRowsInfo; 699 private System.Windows.Forms.TabPage tabPreviewShuffle;700 private System.Windows.Forms.Label lblPreviewShuffle;701 474 private System.Windows.Forms.TabPage tabPreviewInactive; 702 475 private System.Windows.Forms.Label lblPreviewColumnsInfo; … … 704 477 private System.Windows.Forms.Label lblPreviewColumnsVariance; 705 478 private System.Windows.Forms.Label lblPreviewRowsInfo; 706 private System.Windows.Forms.TabPage tabPreviewReplaceMissingValues;707 private System.Windows.Forms.Label lblPreviewReplaceMissingValues;708 479 private System.Windows.Forms.Label label9; 709 480 private System.Windows.Forms.TabControl tabsData; … … 721 492 private System.Windows.Forms.TextBox txtDeleteRowsInfo; 722 493 private System.Windows.Forms.Label label5; 723 private System.Windows.Forms.TabPage tabReplaceMissingValues;724 private System.Windows.Forms.TextBox txtReplaceValue;725 private System.Windows.Forms.ComboBox cmbReplaceWith;726 private System.Windows.Forms.Label lblValueColon;727 private System.Windows.Forms.Label label10;728 private System.Windows.Forms.TabPage tabDataShuffle;729 private System.Windows.Forms.Label lblShuffleProperties;730 private System.Windows.Forms.ComboBox cmbVariableNames;731 private System.Windows.Forms.Label label8;732 494 private System.Windows.Forms.Label lblPreviewInActive; 733 private System.Windows.Forms.CheckBox shuffleSeparatelyCheckbox;734 495 private System.Windows.Forms.Panel panel1; 735 496 private System.Windows.Forms.Panel panel2; -
branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing.Views/3.4/ManipulationView.cs
r15283 r15285 21 21 22 22 using System; 23 using System.Collections.Generic;24 23 using System.Drawing; 25 24 using System.Globalization; … … 44 43 public ManipulationView() { 45 44 InitializeComponent(); 46 cmbReplaceWith.SelectedIndex = 0;47 45 tabsData.Appearance = TabAppearance.FlatButtons; 48 46 tabsData.ItemSize = new Size(0, 1); … … 56 54 () => ValidateDeleteColumnsVariance(), 57 55 () => ValidateDeleteRowsInfo(), 58 () => ValidateReplaceWith(),59 () => ValidateShuffle()60 56 }; 61 57 62 58 manipulations = new Action[] { 63 () => Content.ManipulationLogic.DeleteColumnsWithMissingValuesGreater(GetDeleteColumnsInfo()), 64 () => Content.ManipulationLogic.DeleteColumnsWithVarianceSmaller(GetDeleteColumnsVariance()), 65 () => Content.ManipulationLogic.DeleteRowsWithMissingValuesGreater(GetRowsColumnsInfo()), 66 () => ReplaceMissingValues(), 67 () => Content.ManipulationLogic.Shuffle(shuffleSeparatelyCheckbox.Checked) 59 () => Content.DeleteColumnsWithMissingValuesGreater(GetDeleteColumnsInfo()), 60 () => Content.DeleteColumnsWithVarianceSmaller(GetDeleteColumnsVariance()), 61 () => Content.DeleteRowsWithMissingValuesGreater(GetRowsColumnsInfo()), 68 62 }; 69 63 } … … 72 66 base.OnContentChanged(); 73 67 if (Content != null) { 74 cmbVariableNames.Items.Clear();75 foreach (var name in Content.ManipulationLogic.VariableNames) {76 cmbVariableNames.Items.Add(name);77 }78 cmbVariableNames.SelectedIndex = 0;79 68 CheckFilters(); 80 69 } … … 83 72 protected override void RegisterContentEvents() { 84 73 base.RegisterContentEvents(); 85 Content. ManipulationLogic.PreprocessingData.FilterChanged += FilterLogic_FilterChanged;74 Content.PreprocessingData.FilterChanged += FilterLogic_FilterChanged; 86 75 } 87 76 88 77 protected override void DeregisterContentEvents() { 89 Content. ManipulationLogic.PreprocessingData.FilterChanged -= FilterLogic_FilterChanged;78 Content.PreprocessingData.FilterChanged -= FilterLogic_FilterChanged; 90 79 base.DeregisterContentEvents(); 91 80 } … … 126 115 } 127 116 128 private void ReplaceMissingValues() {129 var missingValuesIndices = new List<int>();130 var columnIndex = cmbVariableNames.SelectedIndex;131 var columnIndices = new Dictionary<int, IList<int>> { { columnIndex, missingValuesIndices } };132 133 for (int rowIndex = 0; rowIndex < Content.ManipulationLogic.PreprocessingData.Rows; rowIndex++)134 if (Content.ManipulationLogic.PreprocessingData.IsCellEmpty(columnIndex, rowIndex))135 missingValuesIndices.Add(rowIndex);136 137 switch (cmbReplaceWith.SelectedIndex) {138 case 0: //Value139 Content.ManipulationLogic.ReplaceIndicesByValue(columnIndices, txtReplaceValue.Text);140 break;141 case 1: //Average142 Content.ManipulationLogic.ReplaceIndicesByAverageValue(columnIndices);143 break;144 case 2: //Median145 Content.ManipulationLogic.ReplaceIndicesByMedianValue(columnIndices);146 break;147 case 3: //Most Common148 Content.ManipulationLogic.ReplaceIndicesByMostCommonValue(columnIndices);149 break;150 case 4: //Random151 Content.ManipulationLogic.ReplaceIndicesByRandomValue(columnIndices);152 break;153 }154 }155 156 117 private void ValidateDeleteColumnsInfo() { 157 118 ValidateDoubleTextBox(txtDeleteColumnsInfo.Text); 158 119 if (btnApply.Enabled) { 159 var filteredColumns = Content. ManipulationLogic.ColumnsWithMissingValuesGreater(GetDeleteColumnsInfo());120 var filteredColumns = Content.ColumnsWithMissingValuesGreater(GetDeleteColumnsInfo()); 160 121 int count = filteredColumns.Count; 161 122 int columnCount = Content.PreprocessingData.Columns; … … 167 128 sb.Append(Environment.NewLine); 168 129 sb.Append("Columns: "); 169 sb.Append(Content. ManipulationLogic.VariableNames.ElementAt(filteredColumns.ElementAt(0)));130 sb.Append(Content.PreprocessingData.VariableNames.ElementAt(filteredColumns.ElementAt(0))); 170 131 for (int i = 1; i < filteredColumns.Count; i++) { 171 string columnName = Content. ManipulationLogic.VariableNames.ElementAt(filteredColumns.ElementAt(i));132 string columnName = Content.PreprocessingData.VariableNames.ElementAt(filteredColumns.ElementAt(i)); 172 133 sb.Append(", "); 173 134 sb.Append(columnName); … … 188 149 ValidateDoubleTextBox(txtDeleteColumnsVariance.Text); 189 150 if (btnApply.Enabled) { 190 var filteredColumns = Content. ManipulationLogic.ColumnsWithVarianceSmaller(GetDeleteColumnsVariance());151 var filteredColumns = Content.ColumnsWithVarianceSmaller(GetDeleteColumnsVariance()); 191 152 int count = filteredColumns.Count; 192 153 int columnCount = Content.PreprocessingData.Columns; … … 198 159 sb.Append(Environment.NewLine); 199 160 sb.Append("Columns: "); 200 sb.Append(Content. ManipulationLogic.VariableNames.ElementAt(filteredColumns.ElementAt(0)));161 sb.Append(Content.PreprocessingData.VariableNames.ElementAt(filteredColumns.ElementAt(0))); 201 162 for (int i = 1; i < filteredColumns.Count; i++) { 202 string columnName = Content. ManipulationLogic.VariableNames.ElementAt(filteredColumns.ElementAt(i));163 string columnName = Content.PreprocessingData.VariableNames.ElementAt(filteredColumns.ElementAt(i)); 203 164 sb.Append(", "); 204 165 sb.Append(columnName); … … 219 180 ValidateDoubleTextBox(txtDeleteRowsInfo.Text); 220 181 if (btnApply.Enabled) { 221 int count = Content. ManipulationLogic.RowsWithMissingValuesGreater(GetRowsColumnsInfo()).Count;182 int count = Content.RowsWithMissingValuesGreater(GetRowsColumnsInfo()).Count; 222 183 int rowCount = Content.PreprocessingData.Rows; 223 184 lblPreviewRowsInfo.Text = count + " row" + (count > 1 || count == 0 ? "s" : "") + " of " + rowCount + " (" + string.Format("{0:F2}%", 100d / rowCount * count) + ") were detected with more than " + txtDeleteRowsInfo.Text + "% missing values."; … … 230 191 lblPreviewRowsInfo.Text = "Preview not possible yet - please input the limit above."; 231 192 } 232 }233 234 private void ValidateReplaceWith() {235 btnApply.Enabled = false;236 string replaceWith = (string)cmbReplaceWith.SelectedItem;237 int columnIndex = cmbVariableNames.SelectedIndex;238 239 if (cmbReplaceWith.SelectedIndex == 0) {240 string errorMessage;241 string replaceValue = txtReplaceValue.Text;242 if (string.IsNullOrEmpty(replaceValue)) {243 lblPreviewReplaceMissingValues.Text = "Preview not possible yet - please input the text which will be used as replacement.";244 } else if (!Content.ManipulationLogic.PreprocessingData.Validate(txtReplaceValue.Text, out errorMessage, columnIndex)) {245 lblPreviewReplaceMissingValues.Text = "Preview not possible yet - " + errorMessage;246 } else {247 btnApply.Enabled = true;248 }249 replaceWith = "\"" + replaceValue + "\"";250 } else {251 btnApply.Enabled = true;252 }253 if (btnApply.Enabled) {254 int count = 0;255 for (int rowIndex = 0; rowIndex < Content.ManipulationLogic.PreprocessingData.Rows; rowIndex++)256 if (Content.ManipulationLogic.PreprocessingData.IsCellEmpty(columnIndex, rowIndex)) count++;257 258 int cellCount = Content.PreprocessingData.Rows * Content.PreprocessingData.Columns;259 lblPreviewReplaceMissingValues.Text = count + " cell" + (count > 1 || count == 0 ? "s" : "")260 + " of " + cellCount + " (" + string.Format("{0:F2}%", 100d / cellCount * count) + ") were detected with missing values which would be replaced with " + replaceWith;261 if (count > 0) {262 lblPreviewReplaceMissingValues.Text += Environment.NewLine + Environment.NewLine + "Please press the button \"Apply Manipulation\" if you wish to perform the replacement.";263 } else {264 btnApply.Enabled = false;265 }266 }267 }268 269 private void ValidateShuffle() {270 btnApply.Enabled = true;271 lblShuffleProperties.Enabled = false;272 lblShuffleProperties.Visible = false;273 shuffleSeparatelyCheckbox.Enabled = true;274 shuffleSeparatelyCheckbox.Visible = true;275 193 } 276 194 … … 299 217 lblPreviewRowsInfo.Text = "rows successfully deleted."; 300 218 break; 301 case 3:302 lblPreviewReplaceMissingValues.Text = "missing values successfully replaced.";303 btnApply.Enabled = false;304 break;305 case 4:306 lblPreviewShuffle.Text = "dataset shuffled successfully.";307 btnApply.Enabled = false;308 break;309 219 } 310 220 } … … 331 241 ValidateDeleteRowsInfo(); 332 242 } 333 334 private void cmbReplaceWith_SelectedIndexChanged(object sender, EventArgs e) {335 bool isReplaceWithValueSelected = cmbReplaceWith.SelectedIndex == 0;336 lblValueColon.Visible = isReplaceWithValueSelected;337 txtReplaceValue.Visible = isReplaceWithValueSelected;338 ValidateReplaceWith();339 }340 341 private void txtReplaceValue_TextChanged(object sender, EventArgs e) {342 ValidateReplaceWith();343 }344 243 } 345 244 } -
branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Content/DataGridContent.cs
r15274 r15285 28 28 using HeuristicLab.Data; 29 29 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 30 using HeuristicLab.Random; 30 31 31 32 namespace HeuristicLab.DataPreprocessing { … … 37 38 } 38 39 39 [Storable]40 public ManipulationLogic ManipulationLogic { get; private set; }41 42 40 public int Rows { 43 41 get { return PreprocessingData.Rows; } … … 75 73 76 74 #region Constructor, Cloning & Persistence 77 public DataGridContent(IFilteredPreprocessingData preprocessingData , ManipulationLogic manipulationLogic)75 public DataGridContent(IFilteredPreprocessingData preprocessingData) 78 76 : base(preprocessingData) { 79 ManipulationLogic = manipulationLogic;80 77 } 81 78 82 79 public DataGridContent(DataGridContent original, Cloner cloner) 83 80 : base(original, cloner) { 84 ManipulationLogic = cloner.Clone(original.ManipulationLogic);85 81 } 86 82 public override IDeepCloneable Clone(Cloner cloner) { … … 136 132 #pragma warning restore 0067 137 133 #endregion 134 135 #region Manipulations 136 private void ReplaceIndicesByValue(IDictionary<int, IList<int>> cells, Func<int, double> doubleAggregator = null, 137 Func<int, DateTime> dateTimeAggregator = null, Func<int, string> stringAggregator = null) { 138 PreprocessingData.InTransaction(() => { 139 foreach (var column in cells) { 140 if (doubleAggregator != null && PreprocessingData.VariableHasType<double>(column.Key)) { 141 var value = doubleAggregator(column.Key); 142 foreach (int index in column.Value) 143 PreprocessingData.SetCell<double>(column.Key, index, value); 144 } else if (dateTimeAggregator != null && PreprocessingData.VariableHasType<DateTime>(column.Key)) { 145 var value = dateTimeAggregator(column.Key); 146 foreach (int index in column.Value) 147 PreprocessingData.SetCell<DateTime>(column.Key, index, value); 148 } else if (stringAggregator != null && PreprocessingData.VariableHasType<string>(column.Key)) { 149 var value = stringAggregator(column.Key); 150 foreach (int index in column.Value) 151 PreprocessingData.SetCell<string>(column.Key, index, value); 152 } 153 } 154 }); 155 } 156 157 private void ReplaceIndicesByValues(IDictionary<int, IList<int>> cells, Func<int, IEnumerable<double>> doubleAggregator = null, 158 Func<int, IEnumerable<DateTime>> dateTimeAggregator = null, Func<int, IEnumerable<string>> stringAggregator = null) { 159 PreprocessingData.InTransaction(() => { 160 foreach (var column in cells) { 161 if (doubleAggregator != null && PreprocessingData.VariableHasType<double>(column.Key)) { 162 var values = doubleAggregator(column.Key); 163 foreach (var pair in column.Value.Zip(values, (row, value) => new { row, value })) 164 PreprocessingData.SetCell<double>(column.Key, pair.row, pair.value); 165 } else if (dateTimeAggregator != null && PreprocessingData.VariableHasType<DateTime>(column.Key)) { 166 var values = dateTimeAggregator(column.Key); 167 foreach (var pair in column.Value.Zip(values, (row, value) => new { row, value })) 168 PreprocessingData.SetCell<DateTime>(column.Key, pair.row, pair.value); 169 } else if (stringAggregator != null && PreprocessingData.VariableHasType<string>(column.Key)) { 170 var values = stringAggregator(column.Key); 171 foreach (var pair in column.Value.Zip(values, (row, value) => new { row, value })) 172 PreprocessingData.SetCell<string>(column.Key, pair.row, pair.value); 173 } 174 } 175 }); 176 } 177 178 public void ReplaceIndicesByMean(IDictionary<int, IList<int>> cells, bool considerSelection = false) { 179 ReplaceIndicesByValue(cells, 180 col => PreprocessingData.GetMean<double>(col, considerSelection), 181 col => PreprocessingData.GetMean<DateTime>(col, considerSelection)); 182 } 183 184 public void ReplaceIndicesByMedianValue(IDictionary<int, IList<int>> cells, bool considerSelection = false) { 185 ReplaceIndicesByValue(cells, 186 col => PreprocessingData.GetMedian<double>(col, considerSelection), 187 col => PreprocessingData.GetMedian<DateTime>(col, considerSelection)); 188 } 189 190 public void ReplaceIndicesByMode(IDictionary<int, IList<int>> cells, bool considerSelection = false) { 191 ReplaceIndicesByValue(cells, 192 col => PreprocessingData.GetMode<double>(col, considerSelection), 193 col => PreprocessingData.GetMode<DateTime>(col, considerSelection), 194 col => PreprocessingData.GetMode<string>(col, considerSelection)); 195 } 196 197 public void ReplaceIndicesByRandomValue(IDictionary<int, IList<int>> cells, bool considerSelection = false) { 198 var rand = new FastRandom(); 199 ReplaceIndicesByValues(cells, 200 col => { 201 double min = PreprocessingData.GetMin<double>(col, considerSelection); 202 double max = PreprocessingData.GetMax<double>(col, considerSelection); 203 double range = max - min; 204 return cells[col].Select(_ => rand.NextDouble() * range + min); 205 }, 206 col => { 207 var min = PreprocessingData.GetMin<DateTime>(col, considerSelection); 208 var max = PreprocessingData.GetMax<DateTime>(col, considerSelection); 209 double range = (max - min).TotalSeconds; 210 return cells[col].Select(_ => min + TimeSpan.FromSeconds(rand.NextDouble() * range)); 211 }); 212 } 213 214 public void ReplaceIndicesByString(IDictionary<int, IList<int>> cells, string value) { 215 PreprocessingData.InTransaction(() => { 216 foreach (var column in cells) { 217 foreach (var rowIdx in column.Value) { 218 PreprocessingData.SetValue(value, column.Key, rowIdx); 219 } 220 } 221 }); 222 } 223 224 225 public void ReplaceIndicesByLinearInterpolationOfNeighbours(IDictionary<int, IList<int>> cells) { 226 PreprocessingData.InTransaction(() => { 227 foreach (var column in cells) { 228 IList<Tuple<int, int>> startEndings = GetStartAndEndingsForInterpolation(column); 229 foreach (var tuple in startEndings) { 230 Interpolate(column, tuple.Item1, tuple.Item2); 231 } 232 } 233 }); 234 } 235 236 private List<Tuple<int, int>> GetStartAndEndingsForInterpolation(KeyValuePair<int, IList<int>> column) { 237 var startEndings = new List<Tuple<int, int>>(); 238 var rowIndices = column.Value.OrderBy(x => x).ToList(); 239 var count = rowIndices.Count; 240 int start = int.MinValue; 241 for (int i = 0; i < count; ++i) { 242 if (start == int.MinValue) { 243 start = IndexOfPrevPresentValue(column.Key, rowIndices[i]); 244 } 245 if (i + 1 == count || (i + 1 < count && rowIndices[i + 1] - rowIndices[i] > 1)) { 246 int next = IndexOfNextPresentValue(column.Key, rowIndices[i]); 247 if (start > 0 && next < PreprocessingData.Rows) { 248 startEndings.Add(new Tuple<int, int>(start, next)); 249 } 250 start = int.MinValue; 251 } 252 } 253 return startEndings; 254 } 255 256 private void Interpolate(KeyValuePair<int, IList<int>> column, int prevIndex, int nextIndex) { 257 int valuesToInterpolate = nextIndex - prevIndex; 258 259 if (PreprocessingData.VariableHasType<double>(column.Key)) { 260 double prev = PreprocessingData.GetCell<double>(column.Key, prevIndex); 261 double next = PreprocessingData.GetCell<double>(column.Key, nextIndex); 262 double interpolationStep = (next - prev) / valuesToInterpolate; 263 264 for (int i = prevIndex; i < nextIndex; ++i) { 265 double interpolated = prev + (interpolationStep * (i - prevIndex)); 266 PreprocessingData.SetCell<double>(column.Key, i, interpolated); 267 } 268 } else if (PreprocessingData.VariableHasType<DateTime>(column.Key)) { 269 DateTime prev = PreprocessingData.GetCell<DateTime>(column.Key, prevIndex); 270 DateTime next = PreprocessingData.GetCell<DateTime>(column.Key, nextIndex); 271 double interpolationStep = (next - prev).TotalSeconds / valuesToInterpolate; 272 273 for (int i = prevIndex; i < nextIndex; ++i) { 274 DateTime interpolated = prev.AddSeconds(interpolationStep * (i - prevIndex)); 275 PreprocessingData.SetCell<DateTime>(column.Key, i, interpolated); 276 } 277 } 278 } 279 280 private int IndexOfPrevPresentValue(int columnIndex, int start) { 281 int offset = start - 1; 282 while (offset >= 0 && PreprocessingData.IsCellEmpty(columnIndex, offset)) { 283 offset--; 284 } 285 286 return offset; 287 } 288 289 private int IndexOfNextPresentValue(int columnIndex, int start) { 290 int offset = start + 1; 291 while (offset < PreprocessingData.Rows && PreprocessingData.IsCellEmpty(columnIndex, offset)) { 292 offset++; 293 } 294 295 return offset; 296 } 297 298 public void Shuffle(bool shuffleRangesSeparately) { 299 var random = new FastRandom(); 300 301 if (shuffleRangesSeparately) { 302 var ranges = new[] { PreprocessingData.TestPartition, PreprocessingData.TrainingPartition }; 303 PreprocessingData.InTransaction(() => { 304 // process all given ranges - e.g. TrainingPartition, TestPartition 305 foreach (IntRange range in ranges) { 306 var indices = Enumerable.Range(0, PreprocessingData.Rows).ToArray(); 307 var shuffledIndices = Enumerable.Range(range.Start, range.Size).Shuffle(random).ToArray(); 308 for (int i = range.Start, j = 0; i < range.End; i++, j++) 309 indices[i] = shuffledIndices[j]; 310 311 ReOrderToIndices(indices); 312 } 313 }); 314 315 } else { 316 PreprocessingData.InTransaction(() => { 317 var indices = Enumerable.Range(0, PreprocessingData.Rows).ToArray(); 318 indices.ShuffleInPlace(random); 319 ReOrderToIndices(indices); 320 }); 321 } 322 } 323 324 public void ReOrderToIndices(int[] indices) { 325 PreprocessingData.InTransaction(() => { 326 for (int i = 0; i < PreprocessingData.Columns; ++i) { 327 if (PreprocessingData.VariableHasType<double>(i)) 328 ReOrderToIndices<double>(i, indices); 329 else if (PreprocessingData.VariableHasType<string>(i)) 330 ReOrderToIndices<string>(i, indices); 331 else if (PreprocessingData.VariableHasType<DateTime>(i)) 332 ReOrderToIndices<DateTime>(i, indices); 333 } 334 }); 335 } 336 337 private void ReOrderToIndices<T>(int columnIndex, int[] indices) { 338 var originalData = new List<T>(PreprocessingData.GetValues<T>(columnIndex)); 339 if (indices.Length != originalData.Count) throw new InvalidOperationException("The number of provided indices does not match the values."); 340 341 for (int i = 0; i < indices.Length; i++) { 342 T newValue = originalData[indices[i]]; 343 PreprocessingData.SetCell<T>(columnIndex, i, newValue); 344 } 345 } 346 #endregion 138 347 } 139 348 } -
branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Content/ManipulationContent.cs
r15274 r15285 20 20 #endregion 21 21 22 using System; 23 using System.Collections.Generic; 22 24 using System.Drawing; 25 using System.Linq; 23 26 using HeuristicLab.Common; 24 27 using HeuristicLab.Core; … … 33 36 } 34 37 35 [Storable]36 public ManipulationLogic ManipulationLogic { get; private set; }37 38 38 #region Constructor, Cloning & Persistence 39 public ManipulationContent(IFilteredPreprocessingData preprocessingData , ManipulationLogic manipulationLogic)39 public ManipulationContent(IFilteredPreprocessingData preprocessingData) 40 40 : base(preprocessingData) { 41 ManipulationLogic = manipulationLogic;42 41 } 43 42 44 43 public ManipulationContent(ManipulationContent original, Cloner cloner) : 45 44 base(original, cloner) { 46 ManipulationLogic = cloner.Clone(original.ManipulationLogic);47 45 } 48 46 public override IDeepCloneable Clone(Cloner cloner) { … … 54 52 : base(deserializing) { } 55 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 } 56 125 } 57 126 } -
branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/Data/PreprocessingData.cs
r15283 r15285 151 151 if (VariableHasType<double>(columnIndex)) { 152 152 double val; 153 valid = double.TryParse(value, out val); 153 if (string.IsNullOrWhiteSpace(value)) { 154 val = double.NaN; 155 valid = true; 156 } else { 157 valid = double.TryParse(value, out val); 158 } 154 159 if (valid) 155 160 SetCell(columnIndex, rowIndex, val); … … 357 362 errorMessage = string.Empty; 358 363 if (VariableHasType<double>(columnIndex)) { 359 double val; 360 valid = double.TryParse(value, out val); 361 if (!valid) { 362 errorMessage = "Invalid Value (Valid Value Format: \"" + FormatPatterns.GetDoubleFormatPattern() + "\")"; 364 if (string.IsNullOrWhiteSpace(value)) { 365 valid = true; 366 } else { 367 double val; 368 valid = double.TryParse(value, out val); 369 if (!valid) { 370 errorMessage = "Invalid Value (Valid Value Format: \"" + FormatPatterns.GetDoubleFormatPattern() + "\")"; 371 } 363 372 } 364 373 } else if (VariableHasType<string>(columnIndex)) { -
branches/DataPreprocessing Cleanup/HeuristicLab.DataPreprocessing/3.4/HeuristicLab.DataPreprocessing-3.4.csproj
r15283 r15285 131 131 <Compile Include="PreprocessingTransformator.cs" /> 132 132 <Compile Include="Data\DataPreprocessingChangedEvent.cs" /> 133 <Compile Include="Logic\Filter\ComparisonFilter.cs" /> 134 <Compile Include="Logic\Filter\IFilter.cs" /> 135 <Compile Include="Logic\ManipulationLogic.cs" /> 133 <Compile Include="Filter\ComparisonFilter.cs" /> 134 <Compile Include="Filter\IFilter.cs" /> 136 135 <Compile Include="Data\IPreprocessingData.cs" /> 137 136 <Compile Include="Content\FilterContent.cs" /> … … 152 151 <None Include="HeuristicLab.snk" /> 153 152 </ItemGroup> 153 <ItemGroup /> 154 154 <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 155 155 <PropertyGroup>
Note: See TracChangeset
for help on using the changeset viewer.