Completed
Push — develop ( 633974...f7b91b )
by Arkadiusz
02:36
created

Predictable::predictSample()

Size

Total Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 1
nc 1
1
<?php
2
3
declare (strict_types = 1);
4
5
namespace Phpml\Classification\Traits;
6
7
trait Predictable
8
{
9
    /**
10
     * @param array $samples
11
     *
12
     * @return mixed
13
     */
14
    public function predict(array $samples)
15
    {
16
        if (!is_array($samples[0])) {
17
            $predicted = $this->predictSample($samples);
18
        } else {
19
            $predicted = [];
20
            foreach ($samples as $index => $sample) {
21
                $predicted[$index] = $this->predictSample($sample);
22
            }
23
        }
24
25
        return $predicted;
26
    }
27
28
    /**
29
     * @param array $sample
30
     *
31
     * @return mixed
32
     */
33
    abstract protected function predictSample(array $sample);
34
}
35