Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace Phpml\CrossValidation;
6
 
7
use Phpml\Dataset\Dataset;
8
 
9
class RandomSplit extends Split
10
{
11
    protected function splitDataset(Dataset $dataset, float $testSize): void
12
    {
13
        $samples = $dataset->getSamples();
14
        $labels = $dataset->getTargets();
15
        $datasetSize = count($samples);
16
        $testCount = count($this->testSamples);
17
 
18
        for ($i = $datasetSize; $i > 0; --$i) {
19
            $key = mt_rand(0, $datasetSize - 1);
20
            $setName = (count($this->testSamples) - $testCount) / $datasetSize >= $testSize ? 'train' : 'test';
21
 
22
            $this->{$setName.'Samples'}[] = $samples[$key];
23
            $this->{$setName.'Labels'}[] = $labels[$key];
24
        }
25
    }
26
}