Passed
Push — master ( a87859...12b8b1 )
by Arkadiusz
03:36
created
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/Classification/Linear/Adaline.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -52,7 +52,7 @@
 block discarded – undo
52 52
      * If normalizeInputs is set to true, then every input given to the algorithm will be standardized
53 53
      * by use of standard deviation and mean calculation
54 54
      *
55
-     * @param int $learningRate
55
+     * @param double $learningRate
56 56
      * @param int $maxIterations
57 57
      */
58 58
     public function __construct(float $learningRate = 0.001, int $maxIterations = 1000,
Please login to merge, or discard this patch.
Unused Use Statements   -2 removed lines patch added patch discarded remove patch
@@ -4,8 +4,6 @@
 block discarded – undo
4 4
 
5 5
 namespace Phpml\Classification\Linear;
6 6
 
7
-use Phpml\Classification\Classifier;
8
-
9 7
 class Adaline extends Perceptron
10 8
 {
11 9
 
Please login to merge, or discard this 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
 
@@ -12,12 +12,12 @@  discard block
 block discarded – undo
12 12
     /**
13 13
      * Batch training is the default Adaline training algorithm
14 14
      */
15
-    const BATCH_TRAINING    = 1;
15
+    const BATCH_TRAINING = 1;
16 16
 
17 17
     /**
18 18
      * Online training: Stochastic gradient descent learning
19 19
      */
20
-    const ONLINE_TRAINING    = 2;
20
+    const ONLINE_TRAINING = 2;
21 21
 
22 22
     /**
23 23
      * Training type may be either 'Batch' or 'Online' learning
@@ -41,7 +41,7 @@  discard block
 block discarded – undo
41 41
     public function __construct(float $learningRate = 0.001, int $maxIterations = 1000,
42 42
         bool $normalizeInputs = true, int $trainingType = self::BATCH_TRAINING)
43 43
     {
44
-        if (! in_array($trainingType, [self::BATCH_TRAINING, self::ONLINE_TRAINING])) {
44
+        if (!in_array($trainingType, [self::BATCH_TRAINING, self::ONLINE_TRAINING])) {
45 45
             throw new \Exception("Adaline can only be trained with batch and online/stochastic gradient descent algorithm");
46 46
         }
47 47
 
@@ -60,7 +60,7 @@  discard block
 block discarded – undo
60 60
     protected function runTraining(array $samples, array $targets)
61 61
     {
62 62
         // The cost function is the sum of squares
63
-        $callback = function ($weights, $sample, $target) {
63
+        $callback = function($weights, $sample, $target) {
64 64
             $this->weights = $weights;
65 65
 
66 66
             $output = $this->output($sample);
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/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/Linear/Perceptron.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -75,7 +75,7 @@
 block discarded – undo
75 75
      *
76 76
      * Learning rate should be a float value between 0.0(exclusive) and 1.0(inclusive) <br>
77 77
      * Maximum number of iterations can be an integer value greater than 0
78
-     * @param int $learningRate
78
+     * @param double $learningRate
79 79
      * @param int $maxIterations
80 80
      */
81 81
     public function __construct(float $learningRate = 0.001, int $maxIterations = 1000,
Please login to merge, or discard this patch.
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -97,7 +97,7 @@
 block discarded – undo
97 97
         return $this->trainByLabel($samples, $targets, $labels);
98 98
     }
99 99
 
100
-   /**
100
+    /**
101 101
      * @param array $samples
102 102
      * @param array $targets
103 103
      * @param array $labels
Please login to merge, or discard this 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
 
@@ -167,7 +167,7 @@  discard block
 block discarded – undo
167 167
     protected function runTraining(array $samples, array $targets)
168 168
     {
169 169
         // The cost function is the sum of squares
170
-        $callback = function ($weights, $sample, $target) {
170
+        $callback = function($weights, $sample, $target) {
171 171
             $this->weights = $weights;
172 172
 
173 173
             $prediction = $this->outputClass($sample);
@@ -189,7 +189,7 @@  discard block
 block discarded – undo
189 189
      */
190 190
     protected function runGradientDescent(array $samples, array $targets, \Closure $gradientFunc, bool $isBatch = false)
191 191
     {
192
-        $class = $isBatch ? GD::class :  StochasticGD::class;
192
+        $class = $isBatch ? GD::class : StochasticGD::class;
193 193
 
194 194
         if (empty($this->optimizer)) {
195 195
             $this->optimizer = (new $class($this->featureCount))
@@ -284,6 +284,6 @@  discard block
 block discarded – undo
284 284
 
285 285
         $predictedClass = $this->outputClass($sample);
286 286
 
287
-        return $this->labels[ $predictedClass ];
287
+        return $this->labels[$predictedClass];
288 288
     }
289 289
 }
Please login to merge, or discard this patch.
src/Phpml/Classification/Linear/DecisionStump.php 2 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -226,7 +226,7 @@
 block discarded – undo
226 226
     /**
227 227
      *
228 228
      * @param type $leftValue
229
-     * @param type $operator
229
+     * @param string $operator
230 230
      * @param type $rightValue
231 231
      *
232 232
      * @return boolean
Please login to merge, or discard this patch.
Spacing   +10 added lines, -10 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
 
@@ -190,8 +190,8 @@  discard block
 block discarded – undo
190 190
             }
191 191
 
192 192
             // Try other possible points one by one
193
-            for ($step = $minValue; $step <= $maxValue; $step+= $stepSize) {
194
-                $threshold = (float)$step;
193
+            for ($step = $minValue; $step <= $maxValue; $step += $stepSize) {
194
+                $threshold = (float) $step;
195 195
                 list($errorRate, $prob) = $this->calculateErrorRate($targets, $threshold, $operator, $values);
196 196
                 if ($errorRate < $split['trainingErrorRate']) {
197 197
                     $split = ['value' => $threshold, 'operator' => $operator,
@@ -215,7 +215,7 @@  discard block
 block discarded – undo
215 215
     {
216 216
         $values = array_column($samples, $col);
217 217
         $valueCounts = array_count_values($values);
218
-        $distinctVals= array_keys($valueCounts);
218
+        $distinctVals = array_keys($valueCounts);
219 219
 
220 220
         $split = null;
221 221
 
@@ -274,7 +274,7 @@  discard block
 block discarded – undo
274 274
         $wrong = 0.0;
275 275
         $prob = [];
276 276
         $leftLabel = $this->binaryLabels[0];
277
-        $rightLabel= $this->binaryLabels[1];
277
+        $rightLabel = $this->binaryLabels[1];
278 278
 
279 279
         foreach ($values as $index => $value) {
280 280
             if ($this->evaluate($value, $operator, $threshold)) {
@@ -288,7 +288,7 @@  discard block
 block discarded – undo
288 288
                 $wrong += $this->weights[$index];
289 289
             }
290 290
 
291
-            if (! isset($prob[$predicted][$target])) {
291
+            if (!isset($prob[$predicted][$target])) {
292 292
                 $prob[$predicted][$target] = 0;
293 293
             }
294 294
             $prob[$predicted][$target]++;
@@ -297,7 +297,7 @@  discard block
 block discarded – undo
297 297
         // Calculate probabilities: Proportion of labels in each leaf
298 298
         $dist = array_combine($this->binaryLabels, array_fill(0, 2, 0.0));
299 299
         foreach ($prob as $leaf => $counts) {
300
-            $leafTotal = (float)array_sum($prob[$leaf]);
300
+            $leafTotal = (float) array_sum($prob[$leaf]);
301 301
             foreach ($counts as $label => $count) {
302 302
                 if (strval($leaf) == strval($label)) {
303 303
                     $dist[$leaf] = $count / $leafTotal;
@@ -348,8 +348,8 @@  discard block
 block discarded – undo
348 348
      */
349 349
     public function __toString()
350 350
     {
351
-        return "IF $this->column $this->operator $this->value " .
352
-            "THEN " . $this->binaryLabels[0] . " ".
353
-            "ELSE " . $this->binaryLabels[1];
351
+        return "IF $this->column $this->operator $this->value ".
352
+            "THEN ".$this->binaryLabels[0]." ".
353
+            "ELSE ".$this->binaryLabels[1];
354 354
     }
355 355
 }
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.
src/Phpml/Math/Statistic/Gaussian.php 1 patch
Spacing   +2 added lines, -2 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\Math\Statistic;
6 6
 
@@ -39,7 +39,7 @@  discard block
 block discarded – undo
39 39
         // Ref: https://en.wikipedia.org/wiki/Normal_distribution
40 40
         $std2 = $this->std ** 2;
41 41
         $mean = $this->mean;
42
-        return exp(- (($value - $mean) ** 2) / (2 * $std2)) / sqrt(2 * $std2 * pi());
42
+        return exp(-(($value - $mean) ** 2) / (2 * $std2)) / sqrt(2 * $std2 * pi());
43 43
     }
44 44
 
45 45
     /**
Please login to merge, or discard this patch.