= 1) { throw new InvalidArgumentException('testsize must be between 0.0 and 1.0'); } $this->seedGenerator($seed); $this->splitDataset($dataset, $testSize); } public function getTrainSamples(): array { return $this->trainSamples; } public function getTestSamples(): array { return $this->testSamples; } public function getTrainLabels(): array { return $this->trainLabels; } public function getTestLabels(): array { return $this->testLabels; } abstract protected function splitDataset(Dataset $dataset, float $testSize): void; protected function seedGenerator(?int $seed = null): void { if ($seed === null) { mt_srand(); } else { mt_srand($seed); } } }