protected splitDataset ( Phpml\Dataset\Dataset $dataset, float $testSize ) | ||
$dataset | Phpml\Dataset\Dataset | |
$testSize | float |
protected function splitDataset(Dataset $dataset, float $testSize)
{
$samples = $dataset->getSamples();
$labels = $dataset->getTargets();
$datasetSize = count($samples);
$testCount = count($this->testSamples);
for ($i = $datasetSize; $i > 0; --$i) {
$key = mt_rand(0, $datasetSize - 1);
$setName = (count($this->testSamples) - $testCount) / $datasetSize >= $testSize ? 'train' : 'test';
$this->{$setName . 'Samples'}[] = $samples[$key];
$this->{$setName . 'Labels'}[] = $labels[$key];
}
}
/** * @param Dataset $dataset * @param float $testSize */ protected function splitDataset(Dataset $dataset, float $testSize) { $datasets = $this->splitByTarget($dataset); foreach ($datasets as $targetSet) { parent::splitDataset($targetSet, $testSize); } }