Changeset 12667 for stable/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/ShiftStandardDistributionTransformation.cs
- Timestamp:
- 07/08/15 09:50:00 (9 years ago)
- Location:
- stable
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
stable
- Property svn:mergeinfo changed
/trunk/sources merged: 12612
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Problems.DataAnalysis
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Problems.DataAnalysis merged: 12612
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/ShiftStandardDistributionTransformation.cs
r11114 r12667 8 8 9 9 namespace HeuristicLab.Problems.DataAnalysis { 10 [StorableClass] 10 11 [Item("Shift Standard Distribution Transformation", "f(x) = ((x - m_org) / s_org ) * s_tar + m_tar | Represents Transformation to unit standard deviation and additional linear transformation to a target Mean and Standard deviation")] 11 12 public class ShiftStandardDistributionTransformation : Transformation<double> { … … 69 70 } 70 71 71 // http://en.wikipedia.org/wiki/Standard_deviation72 // http://www.statistics4u.info/fundstat_germ/ee_ztransform.html73 // https://www.uni-due.de/~bm0061/vorl12.pdf p574 72 public override IEnumerable<double> Apply(IEnumerable<double> data) { 75 73 ConfigureParameters(data); 76 if (OriginalStandardDeviation == 0.0) { 77 foreach (var e in data) { 78 yield return e; 79 } 80 yield break; 74 if (OriginalStandardDeviation.IsAlmost(0.0)) { 75 return data; 81 76 } 82 83 foreach (var e in data) { 84 double unitNormalDistributedValue = (e - OriginalMean) / OriginalStandardDeviation; 85 yield return unitNormalDistributedValue * StandardDeviation + Mean; 86 } 77 var old_m = OriginalMean; 78 var old_s = OriginalStandardDeviation; 79 var m = Mean; 80 var s = StandardDeviation; 81 return data 82 .Select(d => (d - old_m) / old_s) // standardized 83 .Select(d => d * s + m); 87 84 } 88 85 … … 90 87 ConfigureParameters(data); 91 88 errorMsg = ""; 92 if (OriginalStandardDeviation == 0.0) {89 if (OriginalStandardDeviation.IsAlmost(0.0)) { 93 90 errorMsg = "Standard deviaton for the original data is 0.0, Transformation cannot be applied onto these values."; 94 91 return false;
Note: See TracChangeset
for help on using the changeset viewer.