PHP машинное обучение

я использую этот библиотека для реализации базового машинного обучения в проекте. Я пытаюсь перебрать массив команд соревнований, а затем использовать каждый матч в качестве метки для прогноза о проценте успеха.
Я тренирую сценарий, и в этой части все выглядит нормально, но когда я пытаюсь вывести результат прогноза, будут отображаться только первые две команды файла. Что я делаю не так с циклом?

Это вывод библиотеки машинного обучения

array(1) { [0]=> array(2) { ["Frosinone Calcio"]=> float(0.413733) ["AC Chievo Verona"]=> float(0.586267) } }
array(1) { [0]=> array(2) { ["Frosinone Calcio"]=> float(0.58545) ["AC Chievo Verona"]=> float(0.41455) } }
array(1) { [0]=> array(2) { ["Frosinone Calcio"]=> float(0.58545) ["AC Chievo Verona"]=> float(0.41455) } }

Но я ожидаю что-то вроде этого:

array(1) { [0]=> array(2) { ["Frosinone Calcio"]=> float(0.413733) ["AC Chievo Verona"]=> float(0.586267) } }
array(1) { [0]=> array(2) { ["Juventus"]=> float(0.58545) ["Milan"]=> float(0.41455) } }
array(1) { [0]=> array(2) { ["Sassuolo"]=> float(0.58545) ["Empoli"]=> float(0.41455) } }
// ecc...

Вот мой код:

<?php
require_once __DIR__ . '/vendor/autoload.php';

use Phpml\Classification\SVC;
use Phpml\SupportVectorMachine\Kernel;
use Phpml\Dataset\ArrayDataset;

$data = json_decode(file_get_contents('serie_a.json'),true);

$classifier = new SVC(
Kernel::LINEAR, // $kernel
1.0,            // $cost
3,              // $degree
null,           // $gamma
0.0,            // $coef0
0.001,          // $tolerance
100,            // $cacheSize
true,           // $shrinking
true            // $probabilityEstimates, set to true
);

foreach($data['matches'] as $match){
$homeTeam = $match['homeTeam']['name'];
$awayTeam = $match['awayTeam']['name'];
#$matchday = $match['matchday'];
#$oldDate = new DateTime($match['utcDate']);
#$date = $oldDate->format('Y-m-d');
$labels = ["$homeTeam", "$awayTeam"];
}

$samples = [[1, 0], [1, 1], [0, 1]];

$classifier->train($samples, $labels);

echo '<pre>'.var_dump($classifier->predictProbability([[1, 0]])).'</pre>';
echo '<pre>'.var_dump($classifier->predictProbability([[1, 1]])).'</pre>';
echo '<pre>'.var_dump($classifier->predictProbability([[0, 1]])).'</pre>';
//$classifier->predictProbability([[3, 2], [1, 5]]);
// return [
//   ['a' => 0.349833, 'b' => 0.650167],
//   ['a' => 0.922664, 'b' => 0.0773364],
// ]
?>

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector