for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace Phpml\Preprocessing;
final class LabelEncoder implements Preprocessor
{
/**
* @var int[]
*/
private $classes = [];
public function fit(array $samples, ?array $targets = null): void
$this->classes = [];
foreach ($samples as $sample) {
if (!isset($this->classes[(string) $sample])) {
$this->classes[(string) $sample] = count($this->classes);
}
public function transform(array &$samples): void
foreach ($samples as &$sample) {
$sample = $this->classes[(string) $sample];
public function inverseTransform(array &$samples): void
$classes = array_flip($this->classes);
$sample = $classes[$sample];
* @return string[]
public function classes(): array
return array_keys($this->classes);