GeezerVison is showing github.com — [MINOR][SYSTEMDS-43] Cleanup scale builtin function (readability) · apache/systemds@f4fa565
File tree
Expand file treeCollapse file tree
Open diff view settings
Expand file treeCollapse file tree
Open diff view settings
Collapse file
Copy file name to clipboardExpand all lines: docs/Tasks.txt +2Lines changed: 2 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -34,6 +34,8 @@ SYSTEMDS-40 Preprocessing builtins |
34 | 34 | * 43 Add new scale builtin function OK |
35 | 35 | * 44 SotA normalization primitives |
36 | 36 | * 45 SotA outlier detection primitives |
| 37 | + * 46 Generalization of quantiles |
| 38 | + |
37 | 39 |
|
38 | 40 | SYSTEMDS-50 I/O Formats |
39 | 41 | * 51 Support for homogeneous JSON (local/distributed) |
|
Collapse file
Copy file name to clipboardExpand all lines: scripts/builtin/scale.dml +8-12Lines changed: 8 additions & 12 deletions | Original file line number | Diff line number | Diff line change |
|---|
|
19 | 19 | m_scale = function(Matrix[Double] X, Boolean center, Boolean scale) return (Matrix[Double] Y) { |
20 | 20 | # This function centers scales and performs z-score on the input matrix X |
21 | 21 |
|
22 | | - if (center) { |
23 | | - cm = colMeans(X); |
24 | | - X = X - cm; |
25 | | - } |
| 22 | + if( center ) |
| 23 | + X = X - colMeans(X); |
26 | 24 |
|
27 | 25 | if (scale) { |
28 | 26 | N = nrow(X); |
29 | | - cvars = (colSums(X^2)); |
30 | | - if (center == TRUE) { |
31 | | - cm = colMeans(X); |
32 | | - cvars = (cvars - N*(cm^2))/(N-1); |
33 | | - } |
| 27 | + if( center ) |
| 28 | + cvars = (colSums(X^2) - N*(colMeans(X)^2))/(N-1); |
34 | 29 | else |
35 | | - cvars = cvars/(N-1); |
| 30 | + cvars = colSums(X^2)/(N-1); |
36 | 31 |
|
37 | | - X = X/sqrt(cvars); |
38 | | - X = replace(target=X, pattern=NaN, replacement=0); #replace NaNs with 0's |
| 32 | + #scale by std-dev and replace NaNs with 0's |
| 33 | + X = replace(target=X/sqrt(cvars), |
| 34 | + pattern=NaN, replacement=0); |
39 | 35 | } |
40 | 36 | Y = X; |
41 | 37 | } |