Changeset 11537
- Timestamp:
- 11/11/14 12:56:55 (10 years ago)
- Location:
- stable
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
stable
- Property svn:mergeinfo changed
/trunk/sources merged: 11380-11381,11403
- Property svn:mergeinfo changed
-
stable/HeuristicLab.DataPreprocessing.Views/3.4/ManipulationView.Designer.cs
r10977 r11537 49 49 this.label10 = new System.Windows.Forms.Label(); 50 50 this.tabDataShuffle = new System.Windows.Forms.TabPage(); 51 this.l abel6= new System.Windows.Forms.Label();51 this.lblShuffleProperties = new System.Windows.Forms.Label(); 52 52 this.grpBoxPreview = new System.Windows.Forms.GroupBox(); 53 53 this.tabsPreview = new System.Windows.Forms.TabControl(); … … 66 66 this.lblPreviewShuffle = new System.Windows.Forms.Label(); 67 67 this.label9 = new System.Windows.Forms.Label(); 68 this.shuffleSeparatelyCheckbox = new System.Windows.Forms.CheckBox(); 68 69 this.grpBoxData.SuspendLayout(); 69 70 this.tabsData.SuspendLayout(); … … 350 351 // tabDataShuffle 351 352 // 352 this.tabDataShuffle.Controls.Add(this.label6); 353 this.tabDataShuffle.Controls.Add(this.shuffleSeparatelyCheckbox); 354 this.tabDataShuffle.Controls.Add(this.lblShuffleProperties); 353 355 this.tabDataShuffle.Location = new System.Drawing.Point(4, 22); 354 356 this.tabDataShuffle.Name = "tabDataShuffle"; … … 359 361 this.tabDataShuffle.UseVisualStyleBackColor = true; 360 362 // 361 // l abel6362 // 363 this.l abel6.AutoSize = true;364 this.l abel6.Enabled = false;365 this.l abel6.Location = new System.Drawing.Point(3, 3);366 this.l abel6.Name = "label6";367 this.l abel6.Size = new System.Drawing.Size(115, 13);368 this.l abel6.TabIndex = 0;369 this.l abel6.Text = "No properties available";363 // lblShuffleProperties 364 // 365 this.lblShuffleProperties.AutoSize = true; 366 this.lblShuffleProperties.Enabled = false; 367 this.lblShuffleProperties.Location = new System.Drawing.Point(3, 3); 368 this.lblShuffleProperties.Name = "lblShuffleProperties"; 369 this.lblShuffleProperties.Size = new System.Drawing.Size(115, 13); 370 this.lblShuffleProperties.TabIndex = 0; 371 this.lblShuffleProperties.Text = "No properties available"; 370 372 // 371 373 // grpBoxPreview … … 536 538 this.label9.Size = new System.Drawing.Size(100, 23); 537 539 this.label9.TabIndex = 0; 540 // 541 // shuffleSeparatelyCheckbox 542 // 543 this.shuffleSeparatelyCheckbox.AutoSize = true; 544 this.shuffleSeparatelyCheckbox.Location = new System.Drawing.Point(6, 2); 545 this.shuffleSeparatelyCheckbox.Name = "shuffleSeparatelyCheckbox"; 546 this.shuffleSeparatelyCheckbox.Size = new System.Drawing.Size(233, 17); 547 this.shuffleSeparatelyCheckbox.TabIndex = 1; 548 this.shuffleSeparatelyCheckbox.Text = "Shuffle training and test partitions separately"; 549 this.shuffleSeparatelyCheckbox.UseVisualStyleBackColor = true; 538 550 // 539 551 // ManipulationView … … 619 631 private System.Windows.Forms.Label label10; 620 632 private System.Windows.Forms.TabPage tabDataShuffle; 621 private System.Windows.Forms.Label l abel6;633 private System.Windows.Forms.Label lblShuffleProperties; 622 634 private System.Windows.Forms.ComboBox cmbVariableNames; 623 635 private System.Windows.Forms.Label label8; 624 636 private System.Windows.Forms.Label lblPreviewInActive; 637 private System.Windows.Forms.CheckBox shuffleSeparatelyCheckbox; 625 638 } 626 639 } -
stable/HeuristicLab.DataPreprocessing.Views/3.4/ManipulationView.cs
r11170 r11537 51 51 ()=>validateDeleteRowsInfo(), 52 52 ()=>validateReplaceWith(), 53 ()=> {btnApply.Enabled = true; lblPreviewShuffle.Text = "Data will be shuffled randomly - preview not possible";} //shuffle53 ()=>validateShuffle() 54 54 }; 55 55 … … 59 59 ()=>Content.ManipulationLogic.DeleteRowsWithMissingValuesGreater(getRowsColumnsInfo()), 60 60 ()=>replaceMissingValues(), 61 ()=>Content.ManipulationLogic.Shuffle WithRanges()61 ()=>Content.ManipulationLogic.Shuffle(shuffleSeparatelyCheckbox.Checked) 62 62 }; 63 64 63 } 65 64 … … 228 227 } 229 228 229 private void validateShuffle() { 230 btnApply.Enabled = true; 231 lblShuffleProperties.Enabled = false; 232 lblShuffleProperties.Visible = false; 233 shuffleSeparatelyCheckbox.Enabled = true; 234 shuffleSeparatelyCheckbox.Visible = true; 235 } 236 230 237 public new ManipulationContent Content { 231 238 get { return (ManipulationContent)base.Content; } -
stable/HeuristicLab.DataPreprocessing/3.4/Implementations/ManipulationContent.cs
r11170 r11537 41 41 } 42 42 43 public ManipulationContent(IManipulationLogic theManipulationLogic, ISearchLogic theSearchLogic, IFilterLogic theFi tlerLogic) {43 public ManipulationContent(IManipulationLogic theManipulationLogic, ISearchLogic theSearchLogic, IFilterLogic theFilterLogic) { 44 44 manipulationLogic = theManipulationLogic; 45 45 searchLogic = theSearchLogic; 46 filterLogic = theFi tlerLogic;46 filterLogic = theFilterLogic; 47 47 } 48 48 -
stable/HeuristicLab.DataPreprocessing/3.4/Implementations/ManipulationLogic.cs
r11170 r11537 225 225 } 226 226 227 public void ShuffleWithRanges() { 228 ShuffleWithRanges(new[] { 229 preprocessingData.TestPartition, 230 preprocessingData.TrainingPartition 231 }); 232 } 233 234 public void ShuffleWithRanges(IEnumerable<IntRange> ranges) { 235 // init random outside loop 227 public void Shuffle(bool shuffleRangesSeparately) { 236 228 Random random = new Random(); 237 238 preprocessingData.InTransaction(() => { 239 // process all given ranges - e.g. TrainingPartition, TestPartition 240 foreach (IntRange range in ranges) { 241 List<Tuple<int, int>> shuffledIndices = new List<Tuple<int, int>>(); 242 243 // generate random indices used for shuffeling each column 244 for (int i = range.End - 1; i >= range.Start; --i) { 245 int rand = random.Next(range.Start, i); 246 shuffledIndices.Add(new Tuple<int, int>(i, rand)); 247 } 248 249 ShuffleToIndices(shuffledIndices); 250 } 251 }); 229 var ranges = new[] { preprocessingData.TestPartition, preprocessingData.TrainingPartition }; 230 if (shuffleRangesSeparately) { 231 preprocessingData.InTransaction(() => { 232 // process all given ranges - e.g. TrainingPartition, TestPartition 233 foreach (IntRange range in ranges) { 234 List<Tuple<int, int>> shuffledIndices = new List<Tuple<int, int>>(); 235 236 // generate random indices used for shuffeling each column 237 for (int i = range.End - 1; i >= range.Start; --i) { 238 int rand = random.Next(range.Start, i); 239 shuffledIndices.Add(new Tuple<int, int>(i, rand)); 240 } 241 242 ShuffleToIndices(shuffledIndices); 243 } 244 }); 245 } else { 246 preprocessingData.InTransaction(() => { 247 var indices = ranges.SelectMany(x => Enumerable.Range(x.Start, x.Size)).ToList(); 248 var shuffledIndices = indices.OrderBy(x => random.Next()); 249 ShuffleToIndices(indices.Zip(shuffledIndices, (i, j) => new Tuple<int, int>(i, j)).ToList()); 250 }); 251 } 252 252 } 253 253 -
stable/HeuristicLab.DataPreprocessing/3.4/Interfaces/IManipulationLogic.cs
r11170 r11537 38 38 void ReplaceIndicesByValue(IDictionary<int, IList<int>> cells, string value); 39 39 void ReplaceIndicesByValue<T>(int columnIndex, IEnumerable<int> rowIndices, T value); 40 void ShuffleWithRanges(); 41 void ShuffleWithRanges(IEnumerable<HeuristicLab.Data.IntRange> ranges); 40 void Shuffle(bool shuffleRangesSeparately); 42 41 List<int> RowsWithMissingValuesGreater(double percent); 43 42 List<int> ColumnsWithMissingValuesGreater(double percent);
Note: See TracChangeset
for help on using the changeset viewer.