前言:

根据2014年巴西世界杯的小组赛比赛结果和赔率数据简单预测2018世界杯比赛结果,比赛的赔率我们可以事先知道,所以可以使用赔率作为预测数据

技术:

PHP ML库 贝叶斯分类器

样本数据:2014巴西世界杯小组赛赔率情况 和 比赛结果

预测数据:2018俄罗斯世界杯赔率情况

代码:

<?php
/**
 * 作者:刘海装
 * 电话:18814137313
 * 日期:2018-6-12
 * 项目:根据2014年世界杯的赔率和胜负平情况简单的预测2018世界杯比赛结果
 * 技术:使用 PHP-ML库 贝叶斯分类器
 */
require_once __DIR__ . '/vendor/autoload.php';
use Phpml\Classification\NaiveBayes;

//2014世界杯小组赛比赛赔率
$samples = [
    [1.29,11.13,5.05],
    [1.43,8.08,4.24],
    [1.83,4.75,3.33],
    [2.18,3.55,3.11],
    [2.58,2.79,3.13],
    [2.69,2.88,2.97],
    [1.42,8.36,4.17],
    [1.82,4.93,3.24],
    [1.34,8.85,5.05],
    [1.28,11.12,5.35],
    [2.37,3.13,3.12],
    [2.42,2.92,3.25],
    [4.19,1.94,3.32],
    [2.01,3.71,3.43],
    [1.86,4.32,3.47],
    [1.32,9.26,5.19],
    [1.35,8.91,4.85],
    [5.39,1.64,3.8],
    [1.56,5.54,4.27],
    [12.92,1.21,6.39],
    [2.27,3.19,3.28],
    [3.58,2.02,3.55],
    [2.04,3.65,3.38],
    [5.52,1.6,3.95],
    [4.57,1.81,3.49],
    [1.52,6.59,4.04],
    [4.2,1.87,3.51],
    [1.3,9.2,5.45],
    [1.13,19.99,8.36],
    [4.45,1.75,3.77],
    [2.42,3,3.21],
    [2.12,3.55,3.29],
    [2.62,2.66,3.31],
    [1.12,19.89,8.53],
    [2.55,2.69,3.38],
    [7.51,1.39,4.91],
    [3.78,1.97,3.48],
    [3.46,2.05,3.57],
    [4.32,1.78,3.8],
    [2.53,2.76,3.31],
    [5.21,1.63,3.96],
    [7.22,1.44,4.37],
    [2.12,3.45,3.45],
    [8.49,1.45,3.99]
];
//2014世界杯小组赛比赛结果
$labels = ['win','win','fail','win','win','fail','fail','win','win','win','win','fail','ping','win','ping','ping','win','fail','fail','fail','ping','win','win','fail','fail','fail','win','fail','win','ping','fail','win','fail','ping','win','fail','win','fail','ping','fail','ping','fail','win','fail'];
//使用贝叶斯分类器统计
$classifier = new NaiveBayes();
//开始学习
$classifier->train($samples, $labels);
//获取2018世界杯前9场比赛的赔率情况
$predictData = [
    '俄罗斯 vs 沙特'=>[1.4,8.35,4.1],//俄罗斯 vs 沙特
    '埃及 vs 乌拉圭'=>[6.25,1.6,3.6],//埃及 vs 乌拉圭
    '摩洛哥 vs 伊朗'=>[2.5,3.6,2.9],//摩洛哥 vs 伊朗
    '葡萄牙 vs 西班牙'=>[4.25,1.9,3.3],//葡萄牙 vs 西班牙
    '法国 vs 澳洲'=>[1.2,11.25,5.95],//法国 vs 澳洲
    '秘鲁 vs 丹麦'=>[3.05,2.4,3.15],//秘鲁 vs 丹麦
    '克罗蒂亚 vs 尼日利亚'=>[1.7,5.0,3.55],//克罗蒂亚 vs 尼日利亚
    '哥斯达黎加 vs 塞尔维亚'=>[4.25,1.9,3.35],//哥斯达黎加 vs 塞尔维亚
    '德国 vs 墨西哥'=>[1.45,6.6,4.1],//德国 vs 墨西哥
];
//预测2018世界杯前9场比赛结果
$res = [];
foreach($predictData as $team=>$data){
    $res[$team] = $classifier->predict($data);
}
//打印预测结果
echo '<pre>';
print_r($res);

预测结果如下:

Array
(
    [俄罗斯 vs 沙特] => win //俄罗斯  赢 沙特
    [埃及 vs 乌拉圭] => fail //埃及  输  乌拉圭
    [摩洛哥 vs 伊朗] => win
    [葡萄牙 vs 西班牙] => fail
    [法国 vs 澳洲] => win
    [秘鲁 vs 丹麦] => fail
    [克罗蒂亚 vs 尼日利亚] => win
    [哥斯达黎加 vs 塞尔维亚] => fail
    [德国 vs 墨西哥] => win
)

特别说明:以上数据分析,纯属个人学习用,预测结果和实际情况可能会有偏差,不能用于其他用途。

09-01 05:08