Changeset 15470 for branches/M5Regression/HeuristicLab.Algorithms.DataAnalysis/3.4/M5Regression/Spliting/OrderImpurityCalculator.cs
- Timestamp:
- 11/10/17 12:56:36 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/M5Regression/HeuristicLab.Algorithms.DataAnalysis/3.4/M5Regression/Spliting/OrderImpurityCalculator.cs
r15430 r15470 27 27 namespace HeuristicLab.Algorithms.DataAnalysis { 28 28 /// <summary> 29 /// Helper class for incremental impuritycalculation.29 /// Helper class for incremental split calculation. 30 30 /// Used while moving a potential Split along the ordered training Instances 31 31 /// </summary> 32 internal class OrderImpurityCalculator : IImpurityCalculator { 32 internal class OrderImpurityCalculator { 33 internal enum IncrementType { 34 Left, 35 Right, 36 None 37 } 38 33 39 #region Properties 34 40 private double SqSumLeft { get; set; } … … 99 105 VarRight = NoRight <= 0 ? 0 : Math.Abs(NoRight * SqSumRight - SumRight * SumRight) / (NoRight * NoRight); 100 106 101 if (Order <= 0) throw new ArgumentException(" Impurityorder must be larger than 0");107 if (Order <= 0) throw new ArgumentException("Split order must be larger than 0"); 102 108 if (Order.IsAlmost(1)) { 103 109 y = VarTotal; … … 111 117 } 112 118 var t = NoRight + NoLeft; 113 if (NoLeft <= 0.0 || NoRight <= 0.0) Impurity = double.MinValue; // Impurity= 0;114 else Impurity = y - NoLeft / t * yl - NoRight / t * yr; // Impurity= y - NoLeft / NoRight * yl - NoRight / NoLeft * yr119 if (NoLeft <= 0.0 || NoRight <= 0.0) Impurity = double.MinValue; //Split = 0; 120 else Impurity = y - NoLeft / t * yl - NoRight / t * yr; // Split = y - NoLeft / NoRight * yl - NoRight / NoLeft * yr 115 121 } 116 122 #endregion
Note: See TracChangeset
for help on using the changeset viewer.