PHP машинное обучение - PullRequest
       9

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

0 голосов
/ 23 ноября 2018

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

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

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...

Вот мой код:

<code><?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]])).'
';echo '
'.var_dump($classifier->predictProbability([[1, 1]])).'
';echo '
'.var_dump($classifier->predictProbability([[0, 1]])).'
';// $ classifier-> ForegnetProbability ([[3, 2], [1, 5]]);// return [// ['a' => 0.349833, 'b' => 0.650167], // ['a' => 0.922664, 'b' => 0.0773364], //]?>
...