前言:php
根據2014年巴西世界盃的小組賽比賽結果和賠率數據簡單預測2018世界盃比賽結果,比賽的賠率咱們能夠事先知道,因此能夠使用賠率做爲預測數據學習
技術:ui
PHP ML庫 貝葉斯分類器code
樣本數據:2014巴西世界盃小組賽賠率狀況 和 比賽結果數據分析
預測數據:2018俄羅斯世界盃賠率狀況io
代碼:class
<?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);
預測結果以下:require
Array ( [俄羅斯 vs 沙特] => win //俄羅斯 贏 沙特 [埃及 vs 烏拉圭] => fail //埃及 輸 烏拉圭 [摩洛哥 vs 伊朗] => win [葡萄牙 vs 西班牙] => fail [法國 vs 澳洲] => win [祕魯 vs 丹麥] => fail [克羅蒂亞 vs 尼日利亞] => win [哥斯達黎加 vs 塞爾維亞] => fail [德國 vs 墨西哥] => win )
特別說明:以上數據分析,純屬我的學習用,預測結果和實際狀況可能會有誤差,不能用於其餘用途。foreach