Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
CRAP | |
100.00% |
9 / 9 |
| Accuracy | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
5 | |
100.00% |
9 / 9 |
| score | |
100.00% |
1 / 1 |
5 | |
100.00% |
9 / 9 |
|||
| <?php | |
| declare (strict_types = 1); | |
| namespace Phpml\Metric; | |
| use Phpml\Exception\InvalidArgumentException; | |
| class Accuracy | |
| { | |
| /** | |
| * @param array $actualLabels | |
| * @param array $predictedLabels | |
| * @param bool $normalize | |
| * | |
| * @return float|int | |
| * | |
| * @throws InvalidArgumentException | |
| */ | |
| public static function score(array $actualLabels, array $predictedLabels, bool $normalize = true) | |
| { | |
| if (count($actualLabels) != count($predictedLabels)) { | |
| throw InvalidArgumentException::arraySizeNotMatch(); | |
| } | |
| $score = 0; | |
| foreach ($actualLabels as $index => $label) { | |
| if ($label == $predictedLabels[$index]) { | |
| ++$score; | |
| } | |
| } | |
| if ($normalize) { | |
| $score = $score / count($actualLabels); | |
| } | |
| return $score; | |
| } | |
| } |