Completed
Push — master ( f0a798...cf222b )
by Arkadiusz
02:58
created
src/Phpml/Classification/Ensemble/RandomForest.php 1 patch
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-declare(strict_types=1);
2
+declare(strict_types = 1);
3 3
 
4 4
 namespace Phpml\Classification\Ensemble;
5 5
 
@@ -70,11 +70,11 @@  discard block
 block discarded – undo
70 70
     protected function initSingleClassifier($classifier, $index)
71 71
     {
72 72
         if (is_float($this->featureSubsetRatio)) {
73
-            $featureCount = (int)($this->featureSubsetRatio * $this->featureCount);
73
+            $featureCount = (int) ($this->featureSubsetRatio * $this->featureCount);
74 74
         } elseif ($this->featureCount == 'sqrt') {
75
-            $featureCount = (int)sqrt($this->featureCount) + 1;
75
+            $featureCount = (int) sqrt($this->featureCount) + 1;
76 76
         } else {
77
-            $featureCount = (int)log($this->featureCount, 2) + 1;
77
+            $featureCount = (int) log($this->featureCount, 2) + 1;
78 78
         }
79 79
 
80 80
         if ($featureCount >= $this->featureCount) {
Please login to merge, or discard this patch.
src/Phpml/Classification/DecisionTree/DecisionTreeLeaf.php 1 patch
Spacing   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-declare(strict_types=1);
3
+declare(strict_types = 1);
4 4
 
5 5
 namespace Phpml\Classification\DecisionTree;
6 6
 
@@ -24,7 +24,7 @@  discard block
 block discarded – undo
24 24
     /**
25 25
      * @var DecisionTreeLeaf
26 26
      */
27
-    public $rightLeaf= null;
27
+    public $rightLeaf = null;
28 28
 
29 29
     /**
30 30
      * @var array
@@ -68,7 +68,7 @@  discard block
 block discarded – undo
68 68
         $recordField = $record[$this->columnIndex];
69 69
         if ($this->isContinuous && preg_match("/^([<>=]{1,2})\s*(.*)/", strval($this->value), $matches)) {
70 70
             $op = $matches[1];
71
-            $value= floatval($matches[2]);
71
+            $value = floatval($matches[2]);
72 72
             $recordField = strval($recordField);
73 73
             eval("\$result = $recordField $op $value;");
74 74
             return $result;
@@ -88,16 +88,16 @@  discard block
 block discarded – undo
88 88
             return 0.0;
89 89
         }
90 90
 
91
-        $nodeSampleCount = (float)count($this->records);
91
+        $nodeSampleCount = (float) count($this->records);
92 92
         $iT = $this->giniIndex;
93 93
 
94 94
         if ($this->leftLeaf) {
95
-            $pL = count($this->leftLeaf->records)/$nodeSampleCount;
95
+            $pL = count($this->leftLeaf->records) / $nodeSampleCount;
96 96
             $iT -= $pL * $this->leftLeaf->giniIndex;
97 97
         }
98 98
 
99 99
         if ($this->rightLeaf) {
100
-            $pR = count($this->rightLeaf->records)/$nodeSampleCount;
100
+            $pR = count($this->rightLeaf->records) / $nodeSampleCount;
101 101
             $iT -= $pR * $this->rightLeaf->giniIndex;
102 102
         }
103 103
 
@@ -121,25 +121,25 @@  discard block
 block discarded – undo
121 121
             } else {
122 122
                 $col = "col_$this->columnIndex";
123 123
             }
124
-            if (! preg_match("/^[<>=]{1,2}/", $value)) {
124
+            if (!preg_match("/^[<>=]{1,2}/", $value)) {
125 125
                 $value = "=$value";
126 126
             }
127
-            $value = "<b>$col $value</b><br>Gini: ". number_format($this->giniIndex, 2);
127
+            $value = "<b>$col $value</b><br>Gini: ".number_format($this->giniIndex, 2);
128 128
         }
129 129
         $str = "<table ><tr><td colspan=3 align=center style='border:1px solid;'>
130 130
 				$value</td></tr>";
131 131
         if ($this->leftLeaf || $this->rightLeaf) {
132
-            $str .='<tr>';
132
+            $str .= '<tr>';
133 133
             if ($this->leftLeaf) {
134
-                $str .="<td valign=top><b>| Yes</b><br>" . $this->leftLeaf->getHTML($columnNames) . "</td>";
134
+                $str .= "<td valign=top><b>| Yes</b><br>".$this->leftLeaf->getHTML($columnNames)."</td>";
135 135
             } else {
136
-                $str .='<td></td>';
136
+                $str .= '<td></td>';
137 137
             }
138
-            $str .='<td>&nbsp;</td>';
138
+            $str .= '<td>&nbsp;</td>';
139 139
             if ($this->rightLeaf) {
140
-                $str .="<td valign=top align=right><b>No |</b><br>" . $this->rightLeaf->getHTML($columnNames) . "</td>";
140
+                $str .= "<td valign=top align=right><b>No |</b><br>".$this->rightLeaf->getHTML($columnNames)."</td>";
141 141
             } else {
142
-                $str .='<td></td>';
142
+                $str .= '<td></td>';
143 143
             }
144 144
             $str .= '</tr>';
145 145
         }
Please login to merge, or discard this patch.
src/Phpml/Classification/Ensemble/Bagging.php 1 patch
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-declare(strict_types=1);
3
+declare(strict_types = 1);
4 4
 
5 5
 namespace Phpml\Classification\Ensemble;
6 6
 
@@ -140,7 +140,7 @@  discard block
 block discarded – undo
140 140
         $targets = [];
141 141
         srand($index);
142 142
         $bootstrapSize = $this->subsetRatio * $this->numSamples;
143
-        for ($i=0; $i < $bootstrapSize; $i++) {
143
+        for ($i = 0; $i < $bootstrapSize; $i++) {
144 144
             $rand = rand(0, $this->numSamples - 1);
145 145
             $samples[] = $this->samples[$rand];
146 146
             $targets[] = $this->targets[$rand];
@@ -154,7 +154,7 @@  discard block
 block discarded – undo
154 154
     protected function initClassifiers()
155 155
     {
156 156
         $classifiers = [];
157
-        for ($i=0; $i<$this->numClassifier; $i++) {
157
+        for ($i = 0; $i < $this->numClassifier; $i++) {
158 158
             $ref = new \ReflectionClass($this->classifier);
159 159
             if ($this->classifierOptions) {
160 160
                 $obj = $ref->newInstanceArgs($this->classifierOptions);
Please login to merge, or discard this patch.
src/Phpml/Preprocessing/Normalizer.php 1 patch
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-declare(strict_types=1);
3
+declare(strict_types = 1);
4 4
 
5 5
 namespace Phpml\Preprocessing;
6 6
 
@@ -12,7 +12,7 @@  discard block
 block discarded – undo
12 12
 {
13 13
     const NORM_L1 = 1;
14 14
     const NORM_L2 = 2;
15
-    const NORM_STD= 3;
15
+    const NORM_STD = 3;
16 16
 
17 17
     /**
18 18
      * @var int
@@ -117,7 +117,7 @@  discard block
 block discarded – undo
117 117
         foreach ($sample as $feature) {
118 118
             $norm2 += $feature * $feature;
119 119
         }
120
-        $norm2 = sqrt((float)$norm2);
120
+        $norm2 = sqrt((float) $norm2);
121 121
 
122 122
         if (0 == $norm2) {
123 123
             $sample = array_fill(0, count($sample), 1);
Please login to merge, or discard this patch.
src/Phpml/Classification/Linear/Adaline.php 1 patch
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-declare(strict_types=1);
3
+declare(strict_types = 1);
4 4
 
5 5
 namespace Phpml\Classification\Linear;
6 6
 
@@ -16,12 +16,12 @@  discard block
 block discarded – undo
16 16
     /**
17 17
      * Batch training is the default Adaline training algorithm
18 18
      */
19
-    const BATCH_TRAINING    = 1;
19
+    const BATCH_TRAINING = 1;
20 20
 
21 21
     /**
22 22
      * Online training: Stochastic gradient descent learning
23 23
      */
24
-    const ONLINE_TRAINING    = 2;
24
+    const ONLINE_TRAINING = 2;
25 25
 
26 26
     /**
27 27
      * The function whose result will be used to calculate the network error
@@ -62,7 +62,7 @@  discard block
 block discarded – undo
62 62
             $this->normalizer = new Normalizer(Normalizer::NORM_STD);
63 63
         }
64 64
 
65
-        if (! in_array($trainingType, [self::BATCH_TRAINING, self::ONLINE_TRAINING])) {
65
+        if (!in_array($trainingType, [self::BATCH_TRAINING, self::ONLINE_TRAINING])) {
66 66
             throw new \Exception("Adaline can only be trained with batch and online/stochastic gradient descent algorithm");
67 67
         }
68 68
         $this->trainingType = $trainingType;
@@ -103,7 +103,7 @@  discard block
 block discarded – undo
103 103
             $sum = array_sum($updates);
104 104
 
105 105
             // Updates all weights at once
106
-            for ($i=0; $i <= $this->featureCount; $i++) {
106
+            for ($i = 0; $i <= $this->featureCount; $i++) {
107 107
                 if ($i == 0) {
108 108
                     $this->weights[0] += $this->learningRate * $sum;
109 109
                 } else {
Please login to merge, or discard this patch.
src/Phpml/Classification/Linear/Perceptron.php 1 patch
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-declare(strict_types=1);
3
+declare(strict_types = 1);
4 4
 
5 5
 namespace Phpml\Classification\Linear;
6 6
 
@@ -123,7 +123,7 @@  discard block
 block discarded – undo
123 123
                 // Update bias
124 124
                 $this->weights[0] += $update * $this->learningRate; // Bias
125 125
                 // Update other weights
126
-                for ($i=1; $i <= $this->featureCount; $i++) {
126
+                for ($i = 1; $i <= $this->featureCount; $i++) {
127 127
                     $this->weights[$i] += $update * $sample[$i - 1] * $this->learningRate;
128 128
                 }
129 129
             }
@@ -169,6 +169,6 @@  discard block
 block discarded – undo
169 169
     {
170 170
         $predictedClass = $this->outputClass($sample);
171 171
 
172
-        return $this->labels[ $predictedClass ];
172
+        return $this->labels[$predictedClass];
173 173
     }
174 174
 }
Please login to merge, or discard this patch.
src/Phpml/Classification/Linear/DecisionStump.php 1 patch
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@
 block discarded – undo
1 1
 <?php
2 2
 
3
-declare(strict_types=1);
3
+declare(strict_types = 1);
4 4
 
5 5
 namespace Phpml\Classification\Linear;
6 6
 
Please login to merge, or discard this patch.
src/Phpml/Classification/DecisionTree.php 1 patch
Spacing   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-declare(strict_types=1);
3
+declare(strict_types = 1);
4 4
 
5 5
 namespace Phpml\Classification;
6 6
 
@@ -112,7 +112,7 @@  discard block
 block discarded – undo
112 112
     protected function getColumnTypes(array $samples)
113 113
     {
114 114
         $types = [];
115
-        for ($i=0; $i<$this->featureCount; $i++) {
115
+        for ($i = 0; $i < $this->featureCount; $i++) {
116 116
             $values = array_column($samples, $i);
117 117
             $isCategorical = $this->isCategoricalColumn($values);
118 118
             $types[] = $isCategorical ? self::NOMINAL : self::CONTINUOS;
@@ -136,7 +136,7 @@  discard block
 block discarded – undo
136 136
         // otherwise group the records so that we can classify the leaf
137 137
         // in case maximum depth is reached
138 138
         $leftRecords = [];
139
-        $rightRecords= [];
139
+        $rightRecords = [];
140 140
         $remainingTargets = [];
141 141
         $prevRecord = null;
142 142
         $allSame = true;
@@ -154,12 +154,12 @@  discard block
 block discarded – undo
154 154
             if ($split->evaluate($record)) {
155 155
                 $leftRecords[] = $recordNo;
156 156
             } else {
157
-                $rightRecords[]= $recordNo;
157
+                $rightRecords[] = $recordNo;
158 158
             }
159 159
 
160 160
             // Group remaining targets
161 161
             $target = $this->targets[$recordNo];
162
-            if (! array_key_exists($target, $remainingTargets)) {
162
+            if (!array_key_exists($target, $remainingTargets)) {
163 163
                 $remainingTargets[$target] = 1;
164 164
             } else {
165 165
                 $remainingTargets[$target]++;
@@ -175,7 +175,7 @@  discard block
 block discarded – undo
175 175
                 $split->leftLeaf = $this->getSplitLeaf($leftRecords, $depth + 1);
176 176
             }
177 177
             if ($rightRecords) {
178
-                $split->rightLeaf= $this->getSplitLeaf($rightRecords, $depth + 1);
178
+                $split->rightLeaf = $this->getSplitLeaf($rightRecords, $depth + 1);
179 179
             }
180 180
         }
181 181
         return $split;
@@ -234,7 +234,7 @@  discard block
 block discarded – undo
234 234
     protected function getSelectedFeatures()
235 235
     {
236 236
         $allFeatures = range(0, $this->featureCount - 1);
237
-        if ($this->numUsableFeatures == 0 && ! $this->selectedFeatures) {
237
+        if ($this->numUsableFeatures == 0 && !$this->selectedFeatures) {
238 238
             return $allFeatures;
239 239
         }
240 240
 
@@ -270,7 +270,7 @@  discard block
 block discarded – undo
270 270
             $countMatrix[$label][$rowIndex]++;
271 271
         }
272 272
         $giniParts = [0, 0];
273
-        for ($i=0; $i<=1; $i++) {
273
+        for ($i = 0; $i <= 1; $i++) {
274 274
             $part = 0;
275 275
             $sum = array_sum(array_column($countMatrix, $i));
276 276
             if ($sum > 0) {
@@ -292,7 +292,7 @@  discard block
 block discarded – undo
292 292
         // Detect and convert continuous data column values into
293 293
         // discrete values by using the median as a threshold value
294 294
         $columns = [];
295
-        for ($i=0; $i<$this->featureCount; $i++) {
295
+        for ($i = 0; $i < $this->featureCount; $i++) {
296 296
             $values = array_column($samples, $i);
297 297
             if ($this->columnTypes[$i] == self::CONTINUOS) {
298 298
                 $median = Mean::median($values);
Please login to merge, or discard this patch.