前言:
根据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
)
特别说明:以上数据分析,纯属个人学习用,预测结果和实际情况可能会有偏差,不能用于其他用途。