@@ 47-62 (lines=16) @@ | ||
44 | /** |
|
45 | * @param array $sample |
|
46 | */ |
|
47 | private function normalizeL1(array &$sample) |
|
48 | { |
|
49 | $norm1 = 0; |
|
50 | foreach ($sample as $feature) { |
|
51 | $norm1 += abs($feature); |
|
52 | } |
|
53 | ||
54 | if (0 == $norm1) { |
|
55 | $count = count($sample); |
|
56 | $sample = array_fill(0, $count, 1.0 / $count); |
|
57 | } else { |
|
58 | foreach ($sample as &$feature) { |
|
59 | $feature = $feature / $norm1; |
|
60 | } |
|
61 | } |
|
62 | } |
|
63 | ||
64 | /** |
|
65 | * @param array $sample |
|
@@ 67-82 (lines=16) @@ | ||
64 | /** |
|
65 | * @param array $sample |
|
66 | */ |
|
67 | private function normalizeL2(array &$sample) |
|
68 | { |
|
69 | $norm2 = 0; |
|
70 | foreach ($sample as $feature) { |
|
71 | $norm2 += $feature * $feature; |
|
72 | } |
|
73 | $norm2 = sqrt($norm2); |
|
74 | ||
75 | if (0 == $norm2) { |
|
76 | $sample = array_fill(0, count($sample), 1); |
|
77 | } else { |
|
78 | foreach ($sample as &$feature) { |
|
79 | $feature = $feature / $norm2; |
|
80 | } |
|
81 | } |
|
82 | } |
|
83 | } |
|
84 |