Test Failed
Branch master (01bb82)
by Arkadiusz
05:58 queued 03:02
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/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
 
@@ -15,12 +15,12 @@  discard block
 block discarded – undo
15 15
     /**
16 16
      * Batch training is the default Adaline training algorithm
17 17
      */
18
-    const BATCH_TRAINING    = 1;
18
+    const BATCH_TRAINING = 1;
19 19
 
20 20
     /**
21 21
      * Online training: Stochastic gradient descent learning
22 22
      */
23
-    const ONLINE_TRAINING    = 2;
23
+    const ONLINE_TRAINING = 2;
24 24
 
25 25
     /**
26 26
      * The function whose result will be used to calculate the network error
@@ -52,7 +52,7 @@  discard block
 block discarded – undo
52 52
     public function __construct(float $learningRate = 0.001, int $maxIterations = 1000,
53 53
         bool $normalizeInputs = true, int $trainingType = self::BATCH_TRAINING)
54 54
     {
55
-        if (! in_array($trainingType, [self::BATCH_TRAINING, self::ONLINE_TRAINING])) {
55
+        if (!in_array($trainingType, [self::BATCH_TRAINING, self::ONLINE_TRAINING])) {
56 56
             throw new \Exception("Adaline can only be trained with batch and online/stochastic gradient descent algorithm");
57 57
         }
58 58
 
@@ -104,7 +104,7 @@  discard block
 block discarded – undo
104 104
     protected function updateWeights(array $updates)
105 105
     {
106 106
         // Updates all weights at once
107
-        for ($i=0; $i <= $this->featureCount; $i++) {
107
+        for ($i = 0; $i <= $this->featureCount; $i++) {
108 108
             if ($i == 0) {
109 109
                 $this->weights[0] += $this->learningRate * array_sum($updates);
110 110
             } else {
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
 
@@ -34,7 +34,7 @@  discard block
 block discarded – undo
34 34
     /**
35 35
      * @var DecisionTreeLeaf
36 36
      */
37
-    public $rightLeaf= null;
37
+    public $rightLeaf = null;
38 38
 
39 39
     /**
40 40
      * @var array
@@ -79,7 +79,7 @@  discard block
 block discarded – undo
79 79
 
80 80
         if ($this->isContinuous) {
81 81
             $op = $this->operator;
82
-            $value= $this->numericValue;
82
+            $value = $this->numericValue;
83 83
             $recordField = strval($recordField);
84 84
             eval("\$result = $recordField $op $value;");
85 85
             return $result;
@@ -100,16 +100,16 @@  discard block
 block discarded – undo
100 100
             return 0.0;
101 101
         }
102 102
 
103
-        $nodeSampleCount = (float)count($this->records);
103
+        $nodeSampleCount = (float) count($this->records);
104 104
         $iT = $this->giniIndex;
105 105
 
106 106
         if ($this->leftLeaf) {
107
-            $pL = count($this->leftLeaf->records)/$nodeSampleCount;
107
+            $pL = count($this->leftLeaf->records) / $nodeSampleCount;
108 108
             $iT -= $pL * $this->leftLeaf->giniIndex;
109 109
         }
110 110
 
111 111
         if ($this->rightLeaf) {
112
-            $pR = count($this->rightLeaf->records)/$nodeSampleCount;
112
+            $pR = count($this->rightLeaf->records) / $nodeSampleCount;
113 113
             $iT -= $pR * $this->rightLeaf->giniIndex;
114 114
         }
115 115
 
@@ -133,25 +133,25 @@  discard block
 block discarded – undo
133 133
             } else {
134 134
                 $col = "col_$this->columnIndex";
135 135
             }
136
-            if (! preg_match("/^[<>=]{1,2}/", $value)) {
136
+            if (!preg_match("/^[<>=]{1,2}/", $value)) {
137 137
                 $value = "=$value";
138 138
             }
139
-            $value = "<b>$col $value</b><br>Gini: ". number_format($this->giniIndex, 2);
139
+            $value = "<b>$col $value</b><br>Gini: ".number_format($this->giniIndex, 2);
140 140
         }
141 141
         $str = "<table ><tr><td colspan=3 align=center style='border:1px solid;'>
142 142
 				$value</td></tr>";
143 143
         if ($this->leftLeaf || $this->rightLeaf) {
144
-            $str .='<tr>';
144
+            $str .= '<tr>';
145 145
             if ($this->leftLeaf) {
146
-                $str .="<td valign=top><b>| Yes</b><br>" . $this->leftLeaf->getHTML($columnNames) . "</td>";
146
+                $str .= "<td valign=top><b>| Yes</b><br>".$this->leftLeaf->getHTML($columnNames)."</td>";
147 147
             } else {
148
-                $str .='<td></td>';
148
+                $str .= '<td></td>';
149 149
             }
150
-            $str .='<td>&nbsp;</td>';
150
+            $str .= '<td>&nbsp;</td>';
151 151
             if ($this->rightLeaf) {
152
-                $str .="<td valign=top align=right><b>No |</b><br>" . $this->rightLeaf->getHTML($columnNames) . "</td>";
152
+                $str .= "<td valign=top align=right><b>No |</b><br>".$this->rightLeaf->getHTML($columnNames)."</td>";
153 153
             } else {
154
-                $str .='<td></td>';
154
+                $str .= '<td></td>';
155 155
             }
156 156
             $str .= '</tr>';
157 157
         }
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
 
@@ -114,7 +114,7 @@  discard block
 block discarded – undo
114 114
     {
115 115
         $types = [];
116 116
         $featureCount = count($samples[0]);
117
-        for ($i=0; $i < $featureCount; $i++) {
117
+        for ($i = 0; $i < $featureCount; $i++) {
118 118
             $values = array_column($samples, $i);
119 119
             $isCategorical = self::isCategoricalColumn($values);
120 120
             $types[] = $isCategorical ? self::NOMINAL : self::CONTINUOS;
@@ -138,7 +138,7 @@  discard block
 block discarded – undo
138 138
         // otherwise group the records so that we can classify the leaf
139 139
         // in case maximum depth is reached
140 140
         $leftRecords = [];
141
-        $rightRecords= [];
141
+        $rightRecords = [];
142 142
         $remainingTargets = [];
143 143
         $prevRecord = null;
144 144
         $allSame = true;
@@ -156,12 +156,12 @@  discard block
 block discarded – undo
156 156
             if ($split->evaluate($record)) {
157 157
                 $leftRecords[] = $recordNo;
158 158
             } else {
159
-                $rightRecords[]= $recordNo;
159
+                $rightRecords[] = $recordNo;
160 160
             }
161 161
 
162 162
             // Group remaining targets
163 163
             $target = $this->targets[$recordNo];
164
-            if (! array_key_exists($target, $remainingTargets)) {
164
+            if (!array_key_exists($target, $remainingTargets)) {
165 165
                 $remainingTargets[$target] = 1;
166 166
             } else {
167 167
                 $remainingTargets[$target]++;
@@ -177,7 +177,7 @@  discard block
 block discarded – undo
177 177
                 $split->leftLeaf = $this->getSplitLeaf($leftRecords, $depth + 1);
178 178
             }
179 179
             if ($rightRecords) {
180
-                $split->rightLeaf= $this->getSplitLeaf($rightRecords, $depth + 1);
180
+                $split->rightLeaf = $this->getSplitLeaf($rightRecords, $depth + 1);
181 181
             }
182 182
         }
183 183
         return $split;
@@ -247,7 +247,7 @@  discard block
 block discarded – undo
247 247
     protected function getSelectedFeatures()
248 248
     {
249 249
         $allFeatures = range(0, $this->featureCount - 1);
250
-        if ($this->numUsableFeatures == 0 && ! $this->selectedFeatures) {
250
+        if ($this->numUsableFeatures == 0 && !$this->selectedFeatures) {
251 251
             return $allFeatures;
252 252
         }
253 253
 
@@ -283,7 +283,7 @@  discard block
 block discarded – undo
283 283
             $countMatrix[$label][$rowIndex]++;
284 284
         }
285 285
         $giniParts = [0, 0];
286
-        for ($i=0; $i<=1; $i++) {
286
+        for ($i = 0; $i <= 1; $i++) {
287 287
             $part = 0;
288 288
             $sum = array_sum(array_column($countMatrix, $i));
289 289
             if ($sum > 0) {
@@ -305,7 +305,7 @@  discard block
 block discarded – undo
305 305
         // Detect and convert continuous data column values into
306 306
         // discrete values by using the median as a threshold value
307 307
         $columns = [];
308
-        for ($i=0; $i<$this->featureCount; $i++) {
308
+        for ($i = 0; $i < $this->featureCount; $i++) {
309 309
             $values = array_column($samples, $i);
310 310
             if ($this->columnTypes[$i] == self::CONTINUOS) {
311 311
                 $median = Mean::median($values);
Please login to merge, or discard this patch.
src/Phpml/Classification/Linear/Perceptron.php 1 patch
Spacing   +4 added lines, -4 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
 
@@ -169,7 +169,7 @@  discard block
 block discarded – undo
169 169
                 // Update bias
170 170
                 $this->weights[0] += $update * $this->learningRate; // Bias
171 171
                 // Update other weights
172
-                for ($i=1; $i <= $this->featureCount; $i++) {
172
+                for ($i = 1; $i <= $this->featureCount; $i++) {
173 173
                     $this->weights[$i] += $update * $sample[$i - 1] * $this->learningRate;
174 174
                 }
175 175
             }
@@ -202,7 +202,7 @@  discard block
 block discarded – undo
202 202
     {
203 203
         // Check for early stop: No change larger than 1e-5
204 204
         $diff = array_map(
205
-            function ($w1, $w2) {
205
+            function($w1, $w2) {
206 206
                 return abs($w1 - $w2) > 1e-5 ? 1 : 0;
207 207
             },
208 208
             $oldWeights, $this->weights);
@@ -259,6 +259,6 @@  discard block
 block discarded – undo
259 259
 
260 260
         $predictedClass = $this->outputClass($sample);
261 261
 
262
-        return $this->labels[ $predictedClass ];
262
+        return $this->labels[$predictedClass];
263 263
     }
264 264
 }
Please login to merge, or discard this patch.
src/Phpml/Classification/Ensemble/AdaBoost.php 1 patch
Spacing   +6 added lines, -6 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
 
@@ -173,15 +173,15 @@  discard block
 block discarded – undo
173 173
     {
174 174
         $weights = $this->weights;
175 175
         $std = StandardDeviation::population($weights);
176
-        $mean= Mean::arithmetic($weights);
176
+        $mean = Mean::arithmetic($weights);
177 177
         $min = min($weights);
178
-        $minZ= (int)round(($min - $mean) / $std);
178
+        $minZ = (int) round(($min - $mean) / $std);
179 179
 
180 180
         $samples = [];
181 181
         $targets = [];
182 182
         foreach ($weights as $index => $weight) {
183
-            $z = (int)round(($weight - $mean) / $std) - $minZ + 1;
184
-            for ($i=0; $i < $z; $i++) {
183
+            $z = (int) round(($weight - $mean) / $std) - $minZ + 1;
184
+            for ($i = 0; $i < $z; $i++) {
185 185
                 if (rand(0, 1) == 0) {
186 186
                     continue;
187 187
                 }
@@ -260,6 +260,6 @@  discard block
 block discarded – undo
260 260
             $sum += $h * $alpha;
261 261
         }
262 262
 
263
-        return $this->labels[ $sum > 0 ? 1 : -1];
263
+        return $this->labels[$sum > 0 ? 1 : -1];
264 264
     }
265 265
 }
Please login to merge, or discard this patch.
src/Phpml/Classification/WeightedClassifier.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;
6 6
 
Please login to merge, or discard this patch.