2019独角兽企业重金招聘Python工程师标准>>>
前言:
根据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
)
特别说明:以上数据分析,纯属个人学习用,预测结果和实际情况可能会有偏差,不能用于其他用途。