public function run(array $dataSet, array $dataSetLabels)
 {
     // Generate folds
     $partitioner = new CrossValidationRandomPartitioner(new DataSet($dataSet, $dataSetLabels), $this->numberOfPartitions);
     $resultsList = [];
     for ($i = 0; $i < $this->numberOfPartitions; $i++) {
         // For each fold, train and classify
         $currentPartition = $partitioner->getPartition($i);
         $currentTest = $currentPartition->getTestData();
         $currentTraining = $currentPartition->getTrainingData();
         $classifier = new $this->classifierClassName($currentTraining->getData(), $currentTraining->getLabels());
         $predicted = $this->classify($classifier, $currentTest->getData());
         $resultsList[] = new RunnerResults($predicted, $currentTest->getLabels(), $currentTest->getData());
     }
     return RunnerResults::combine($resultsList);
 }