大胆预测一下2022卡塔尔世界杯小组赛(世界杯2022世界杯时间)_世界杯 ( 性为,算法 )
前言
最近打开各大主流APP出现得最多的无非就是世界杯了,四年一度的世界杯可谓是国际上最引人注目的比赛之一了。
2022年卡塔尔世界杯中国
那么这两天趁着空闲时间,通过机器学习的方法来预测一下2022卡塔尔世界杯小组赛的结果 ,先上预测结果:
世界杯足球彩票在哪买
p1 预测结果(1)p2 预测结果(2)世界杯小组赛中允许平局,但是因为模型的原因,这里仅展示了胜负两种情况,下面会说到(模型训练部分)。
世界杯在哪里举行啊2022
当然,预测结果也仅仅是预测结果而已。本文权当成是笔者兴趣探索的思路,采用的数据集及数据特征比较简单,所用的机器学习算法也是简单的算法,有其他大佬会用到更多的特征更优的算法进行预测(甚至于,庄家对于各支球队的赔率也用上了),训练出来的模型更贴合实际。笔者的思路如下:
一、数据准备、数据预处理及特征工程
1-数据准备
本文用到的数据集是来自kaggle的一份公开数据集(数据链接),数据集描述的是记录了1870年-2022年期间所有国际性足球比赛结果(但我看了好像奥运会没有)。
那么开始准备数据。
先导入必要的包pandas并读取数据集。pandas可谓是python中进行数据处理最牛逼的存在了。
import pandas as pd df = pd.read_csv(results.csv)查看数据特征及前5条信息:
print(df.info()) print(df.head())一共有9列,4.4w行数据:
p3 数据集概况数据集记录着比赛时间、主客队名称、主客队进球数、赛事名称、比赛城市及国家、是否中立,其中tournament为赛事名称,我看了一下里面的比赛,什么比赛都有记录(奥运会除外),甚至友谊赛也有。为了数据具有代表性,笔者这里考虑只选取大型比赛的数据,作为一个非足球爱好者,网上冲浪了很长时间,终于在百度百科找到了比较大型的国际足球赛事名称,同时为了样本量多一些,这里将上述赛事的资格赛也算上了。
p4 国际性足球比赛target_tournament = [ UEFA Nations League, UEFA Euro qualification, UEFA Euro, Oceania Nations Cup qualification, Oceania Nations Cup, Gold Cup qualification, Gold Cup, FIFA World Cup qualification, FIFA World Cup, Copa América, CONIFA European Football Cup, CONIFA Africa Football Cup, Confederations Cup, CONCACAF Nations League qualification, CONCACAF Nations League, African Cup of Nations qualification, African Cup of Nations, AFC Asian Cup qualification, AFC Asian Cup ] df_target = df.loc[df.tournament.isin(target_tournament)]之前的思路是先取2018年俄罗斯世界杯(2018-6-14)之前的数据训练模型,对俄罗斯世界杯小组赛的参赛队伍进行预测,然后预测结果与实际的结果进行对比,验证模型的准确性,故这里先筛选了2018-6-14之前的数据,并将无关特征去掉,仅留下主客队名称、主客队进球数及日期(日期留下的原因是后面想预测2022年卡特尔世界杯小组赛时把2018年之后的数据导入进来,但因为懒,后面直接用2018-6-14之前的数据了。)
df_target = df_target.loc[df_target.date < 2018-6-14] df_target = df_target.drop([tournament, city, country, neutral], axis=1)好了,数据选好了,共有17749条数据,均无缺失值,主客队进球数均为浮点型,没有其他问题。
2-特征构造
利用现有的四个特征构造更多的特征:每场比赛的结果(result)、主队参赛次数(home_times)、客队参赛次数(away_times)、主队胜利次数(home_win)、客队胜利次数(away_win)、主队胜率(home_rate_of_win)、客队胜率(away_rate_of_win)、主队总进球数(home_goal)、客队总进球数(away_goal)、主队场均进球(home_avg_goal)、客队场均进球(away_avg_goal)。同时约定每场比赛的结果(result),主队胜置为1,客队胜置为2,平局置为0。特征构造代码如下:
# 每场比赛的结果(result) df_target[result] = df_target.apply(lambda x: 1 if x[home_score] > x[away_score] else 2 if x[home_score] < x[away_score] else 0,axis=1) # 主队参赛次数(home_times)、客队参赛次数(away_times):将主客队累计参赛数传入字典,并通过apply()获取字典key值对应的value home_times_dict = df_target[home_team].value_counts().to_dict() away_times_dict = df_target[away_team].value_counts().to_dict() sum_times_dict = sum_dict(home_times_dict,away_times_dict) df_target[home_times] = df_target[home_team].apply(lambda x: sum_times_dict[x]) df_target[away_times] = df_target[away_team].apply(lambda x: sum_times_dict[x]) # 主队胜利次数(home_win)、客队胜利次数(away_win)同上 home_win_dict = df_target.loc[df_target.result == 1,home_team].value_counts().to_dict() away_win_dict = df_target.loc[df_target.result == 2,away_team].value_counts().to_dict() sum_win_dict = sum_dict(home_win_dict,away_win_dict) df_target[home_win] = df_target.apply(lambda x: sum_win_dict[x[home_team]] if x[home_team] in sum_win_dict.keys() else 0,axis=1) df_target[away_win] = df_target.apply(lambda x: sum_win_dict[x[away_team]] if x[away_team] in sum_win_dict.keys() else 0,axis=1) # 主队胜率(home_rate_of_win)、客队胜率(away_rate_of_win)直接计算 df_target[home_rate_of_win] = df_target.apply(lambda x: x[home_win] / x[home_times],axis=1) df_target[away_rate_of_win] = df_target.apply(lambda x: x[away_win] / x[away_times],axis=1) # 主队总进球数(home_goal)、客队总进球数(away_goal)、主队场均进球(home_avg_goal)、客队场均进球(away_avg_goal):先算总进球数,再直接计算算场均进球数 home_goal_dict = df_target[[home_team,home_score]].groupby(home_team).sum().to_dict()[home_score] away_goal_dict = df_target[[away_team, away_score]].groupby(away_team).sum().to_dict()[away_score] sum_goal_dict = sum_dict(home_goal_dict,away_goal_dict) df_target[home_goal] = df_target[home_team].apply(lambda x: sum_goal_dict[x]) df_target[away_goal] = df_target[away_team].apply(lambda x: sum_goal_dict[x]) df_target[home_avg_goal] = df_target.apply(lambda x: x[home_goal] / x[home_times],axis=1) df_target[away_avg_goal] = df_target.apply(lambda x: x[away_goal] / x[away_times], axis=1)顺便提一下,特征构造的时候,有多次用到字典数据计算的地方,所以定义了一个计算字典的函数:
def sum_dict(dict1, dict2): temp = dict() for key in dict1.keys() | dict2.keys(): temp[key] = sum([d.get(key, 0) for d in (dict1, dict2)]) return temp至此,特征构造完毕,共有包含日期在内的16个特征,所有数据都存放在名为df_target的DateFrame中。
p5 名为df_target的DateFrame3-数据预处理
除日期、主客队名称、及比赛结果外,其余特征均标准化,此处用的标准分数的方法,也可以使用其他无量纲化的方法。
标准分数(z-score)是一个分数与平均数的差再除以标准差的过程,用公式表示为:z=(x-μ)/σ。其中x为某一具体分数,μ为平均数,σ为标准差。
df_feature = df_target.drop([date,home_team,away_team,result],axis=1) df_normalizing = (df_feature - df_feature.mean()) / (df_feature.std())标准化后的数据与主客队名称及结果(result)连接起来,作为机器学习的数据集。
data_set = pd.concat([df_target[[home_team, away_team]],df_normalizing,df_target[result]],axis=1) data_set = data_set.reset_index(drop=True)这里没有定性或者离散型的数据,所以不用进行哑编码或者独热编码。
至此,数据清洗及特征工程基本完成,这里我先保存到csv文件中,同时笔者还保存了一份没有带主客队名称的数据集
data_set.to_csv(data_set_with_team_name.csv,encoding=utf-8,index=False)二、模型训练
1-划分训练集、测试集
导入机器学习涉及到的包,及上一步保存的数据集:
from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import mean_absolute_error, accuracy_score, f1_score, precision_score, recall_score from sklearn import svm from sklearn.ensemble import RandomForestClassifier from sklearn.neural_network import MLPClassifier from sklearn.tree import DecisionTreeClassifier data_set = pd.read_csv(data_set.csv)调用train_test_split()方法,划分训练集和测试集,其中home_score、away_score为结果导向的特征,不作为机器学习的特征训练。
X = data_set.drop([result,home_score,away_score],axis=1) # 模型改进3中,减少特征home_goal及away_goal准确率会稍微高一点 y = data_set[result] X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3,random_state=7)其中X_train为训练特征,y_train为训练目标,X_test为测试特征,y_test为测试目标,test_size为测试集的占比,此处取30%;random_state为随机数种子,只要不为0或者空即可。
2-模型训练
开始模型训练,此处使用逻辑回归算法、支持向量机算法、随机森林算法、神经网络算法、决策树算法进行模型训练,代码如下:
# 调用逻辑回归算法 print("=====逻辑回归算法=====") logreg = LogisticRegression(C=1,solver=liblinear,multi_class =auto) logreg.fit(X_train, y_train) score_log = logreg.score(X_train, y_train) score2_log = logreg.score(X_test, y_test) y_log_pred = logreg.predict(X_test) print("训练集精度: ", %.3f % score_log) print("测试集精度: ", %.3f % score2_log) print("平均绝对误差: ",mean_absolute_error(y_test,y_log_pred)) # print(Precision: %.3f % precision_score(y_test, y_log_pred)) # print(Recall: %.3f % recall_score(y_test, y_log_pred)) # print(Accuracy: %.3f % accuracy_score(y_test, y_log_pred)) # print(F1 Score: %.3f % f1_score(y_test, y_log_pred)) # 调用SVM支持向量机算法 print("=====SVM支持向量机=====") clf = svm.SVC(C=0.1, kernel=linear, decision_function_shape=ovr) clf.fit(X_train, y_train) score_svm = clf.score(X_train, y_train) score2_svm = clf.score(X_test, y_test) y_svm_pred = clf.predict(X_test) print("训练集精度: ", %.3f % score_svm) print("测试集精度: ", %.3f % score2_svm) print("平均绝对误差: ",mean_absolute_error(y_test,y_svm_pred)) # print(Precision: %.3f % precision_score(y_test, y_svm_pred)) # print(Recall: %.3f % recall_score(y_test, y_svm_pred)) # print(Accuracy: %.3f % accuracy_score(y_test, y_svm_pred)) # print(F1 Score: %.3f % f1_score(y_test, y_svm_pred)) # 调用随机森林算法 print("=====随机森林算法=====") rf = RandomForestClassifier(max_depth=20,n_estimators=1000,random_state=0) rf.fit(X_train, y_train) score_rf = rf.score(X_train, y_train) score2_rf = rf.score(X_test, y_test) y_rf_pred = rf.predict(X_test) print("训练集精度: ", %.3f % score_rf) print("测试集精度: ", %.3f % score2_rf) print("平均绝对误差: ",mean_absolute_error(y_test,y_rf_pred)) # print(Precision: %.3f % precision_score(y_test, y_rf_pred)) # print(Recall: %.3f % recall_score(y_test, y_rf_pred)) # print(Accuracy: %.3f % accuracy_score(y_test, y_rf_pred)) # print(F1 Score: %.3f % f1_score(y_test, y_rf_pred)) # 调用神经网络算法 print("=====神经网络算法=====") mlp = MLPClassifier(hidden_layer_sizes=10,max_iter=1000) mlp.fit(X_train, y_train) score_mlp = mlp.score(X_train, y_train) score2_mlp = mlp.score(X_test, y_test) y_mlp_pred = mlp.predict(X_test) print("训练集精度: ", %.3f % score_mlp) print("测试集精度: ", %.3f % score2_mlp) print("平均绝对误差: ",mean_absolute_error(y_test,y_mlp_pred)) # print(Precision: %.3f % precision_score(y_test, y_mlp_pred)) # print(Recall: %.3f % recall_score(y_test, y_mlp_pred)) # print(Accuracy: %.3f % accuracy_score(y_test, y_mlp_pred)) # print(F1 Score: %.3f % f1_score(y_test, y_mlp_pred)) # 调用决策树算法 print("=====决策树算法=====") tree=DecisionTreeClassifier(max_depth=50,random_state=0) tree.fit(X_train, y_train) score_tree = tree.score(X_train, y_train) score2_tree = tree.score(X_test, y_test) y_tree_pred = tree.predict(X_test) print("训练集精度: ", %.3f % score_tree) print("测试集精度: ", %.3f % score2_tree) print("平均绝对误差: ",mean_absolute_error(y_test,y_tree_pred)) # print(Precision: %.3f % precision_score(y_test, y_tree_pred)) # print(Recall: %.3f % recall_score(y_test, y_tree_pred)) # print(Accuracy: %.3f % accuracy_score(y_test, y_tree_pred)) # print(F1 Score: %.3f % f1_score(y_test, y_tree_pred))模型训练结果如下:
"D:\00python logLLL\python.exe" D:/案例/FIFA/机器学习.py =====逻辑回归算法===== 训练集精度: 0.619 测试集精度: 0.614 平均绝对误差: 0.45746774546249724 =====SVM支持向量机===== 训练集精度: 0.617 测试集精度: 0.614 平均绝对误差: 0.45724907063197023 =====随机森林算法===== 训练集精度: 0.785 测试集精度: 0.550 平均绝对误差: 0.5650557620817844 =====神经网络算法===== 训练集精度: 0.619 测试集精度: 0.614 平均绝对误差: 0.4614038924119834 =====决策树算法===== 训练集精度: 0.785 测试集精度: 0.506 平均绝对误差: 0.6260660397988191 进程已结束,退出代码0四种算法精度仅为六成左右,平均绝对误差都五成左右,说明模型是不好的,只因于这里所用到逻辑回归算法、支持向量机算法、随机森林算法、神经网络算法、决策树算法均为典型的二分类算法,笔者此前在构造特征的时候,比赛结果为三种情况——胜、平、负,有三个分类。
df_target[result] = df_target.apply(lambda x: 1 if x[home_score] > x[away_score] else 2 if x[home_score] < x[away_score] else 0,axis=1)重新检查数据源,发现平局的数据有3265条,占比21%:
p6 机器学习数据集平局的数据占比挺多的,直接去掉肯定会影响模型,但是由于时间关系,同时考虑到世界杯仅在小组赛中允许平局,进入淘汰赛后只有胜负两种结果,所以这里笔者不得不先将平局的情况去掉。
data_set = data_set.loc[data_set.result != 0]重新跑下模型,此时模型的结果为:
"D:\00python logLLL\python.exe" D:/案例/FIFA/机器学习.py =====逻辑回归算法===== 训练集精度: 0.782 测试集精度: 0.794 平均绝对误差: 0.20623434455886447 Precision: 0.809 Recall: 0.896 Accuracy: 0.794 F1 Score: 0.850 =====SVM支持向量机===== 训练集精度: 0.783 测试集精度: 0.790 平均绝对误差: 0.209852490954634 Precision: 0.803 Recall: 0.899 Accuracy: 0.790 F1 Score: 0.848 =====随机森林算法===== 训练集精度: 0.893 测试集精度: 0.768 平均绝对误差: 0.23211800723629278 Precision: 0.800 Recall: 0.859 Accuracy: 0.768 F1 Score: 0.828 =====神经网络算法===== 训练集精度: 0.784 测试集精度: 0.793 平均绝对误差: 0.20706930141942667 Precision: 0.806 Recall: 0.900 Accuracy: 0.793 F1 Score: 0.850 =====决策树算法===== 训练集精度: 0.893 测试集精度: 0.739 平均绝对误差: 0.2607848594489285 Precision: 0.772 Recall: 0.852 Accuracy: 0.739 F1 Score: 0.810 进程已结束,退出代码0算法的精度有所提高,平均绝对误差有所下降,但是在现实工作中,这种精度大多是不被接受的,但是鉴于本文的探索性质,此处将不再进行模型改良,直接在这几种算法中选择一种进行预测。其中Precision、Recall、Accuracy、F1 Score分别代表精确度、召回率、准确性、F1分数,甭管,数值越大越牛逼。
3-2022年卡塔尔世界杯小组赛预测
综合对比了各项性能指标,笔者决定选用逻辑回归算法进行预测。
p7 世界杯小组赛分组首先读取2022年卡塔尔世界杯小组赛的对阵情况及之前保存的数据集:
df_group_match_2022 = pd.read_csv(2022_World_Cup.csv) df_info = pd.read_csv(data_set_with_team_name.csv)在数据集data_set_with_team_name.csv中匹配32支小组赛队伍的特征信息:
home_info_dict = df_info[[home_team,home_times,home_win,home_rate_of_win,home_goal,home_avg_goal]].groupby(home_team).mean().to_dict() away_info_dict = df_info[[away_team,away_times,away_win,away_rate_of_win,away_goal,away_avg_goal]].groupby(away_team).mean().to_dict() df_group_match_2022[home_times] = df_group_match_2022.apply(lambda x: home_info_dict[home_times][x[home_team]],axis=1) df_group_match_2022[away_times] = df_group_match_2022.apply(lambda x: away_info_dict[away_times][x[away_team]],axis=1) df_group_match_2022[home_win] = df_group_match_2022.apply(lambda x: home_info_dict[home_win][x[home_team]],axis=1) df_group_match_2022[away_win] = df_group_match_2022.apply(lambda x: away_info_dict[away_win][x[away_team]],axis=1) df_group_match_2022[home_rate_of_win] = df_group_match_2022.apply(lambda x: home_info_dict[home_rate_of_win][x[home_team]],axis=1) df_group_match_2022[away_rate_of_win] = df_group_match_2022.apply(lambda x: away_info_dict[away_rate_of_win][x[away_team]],axis=1) # df_group_match_2022[home_goal] = df_group_match_2022.apply(lambda x: home_info_dict[home_goal][x[home_team]],axis=1) # df_group_match_2022[away_goal] = df_group_match_2022.apply(lambda x: away_info_dict[away_goal][x[away_team]],axis=1) df_group_match_2022[home_avg_goal] = df_group_match_2022.apply(lambda x: home_info_dict[home_avg_goal][x[home_team]],axis=1) df_group_match_2022[away_avg_goal] = df_group_match_2022.apply(lambda x: away_info_dict[away_avg_goal][x[away_team]],axis=1) df_group_match_2022[result] = None调用训练好的模型进行预测:
output_info = df_group_match_2022 pred_set = df_group_match_2022.drop([match_index,主队,客队,home_team,away_team,result],axis=1) predictions = logreg.predict(pred_set) for i in range(48): print(====*==== + output_info.iloc[i, 0] + ====*====) print(output_info.iloc[i, 1] + Vs. + output_info.iloc[i, 2]) if predictions[i] == 1: print(Winner: + output_info.iloc[i, 1]) else: print(Winner: + output_info.iloc[i, 2]) print(output_info.iloc[i, 1] + --胜出的可能性为: + %.3f % (logreg.predict_proba(pred_set)[i][0])) print(output_info.iloc[i, 2] + --胜出的可能性为: + %.3f % (logreg.predict_proba(pred_set)[i][1])) print(===========*============) print()输出结果便是本文一开头展示的预测结果啦。
4-用模型去“预测”2018年俄罗斯世界杯小组赛
前文笔者说到,思路是先取2018年俄罗斯世界杯(2018-6-14)之前的数据训练模型,对俄罗斯世界杯小组赛的参赛队伍进行"预测",然后"预测"结果与实际的结果进行对比,验证模型的准确性,再去预测2022年卡塔尔世界杯小组赛的结果。但鉴于模型的局限性,数据的不完备性,特征选取等各方面的原因,2018年俄罗斯世界杯小组赛“预测结果”与实际结果的正确率不是很高,所以本文仅为机器学习探索的思路,没有严谨性及科学性所言。这里可以放下跑出来的结果(如下):
大概统计了一下,48场比赛,模型跑出来的结果成功了26场,成功率54%;但模型中是不考虑平局的,若将实际结果中的9场平局舍去,成功率66.7%
"D:\00python logLLL\python.exe" D:/案例/FIFA/改进3-减少特征.py =====逻辑回归算法===== 训练集精度: 0.782 测试集精度: 0.794 平均绝对误差: 0.20623434455886447 Precision: 0.809 Recall: 0.896 Accuracy: 0.794 F1 Score: 0.850 Saudi Arabia Vs. Russia Winner:Saudi Arabia Saudi Arabia--胜出的可能性为:0.591 Russia--胜出的可能性为:0.409 ============= Uruguay Vs. Egypt Winner:Uruguay Uruguay--胜出的可能性为:0.694 Egypt--胜出的可能性为:0.306 ============= Iran Vs. Morocco Winner:Iran Iran--胜出的可能性为:0.837 Morocco--胜出的可能性为:0.163 ============= Portugal Vs. Spain Winner:Portugal Portugal--胜出的可能性为:0.574 Spain--胜出的可能性为:0.426 ============= France Vs. Australia Winner:France France--胜出的可能性为:0.711 Australia--胜出的可能性为:0.289 ============= Argentina Vs. Iceland Winner:Argentina Argentina--胜出的可能性为:0.968 Iceland--胜出的可能性为:0.032 ============= Peru Vs. Denmark Winner:Peru Peru--胜出的可能性为:0.521 Denmark--胜出的可能性为:0.479 ============= Croatia Vs. Nigeria Winner:Croatia Croatia--胜出的可能性为:0.763 Nigeria--胜出的可能性为:0.237 ============= Costa Rica Vs. Serbia Winner:Costa Rica Costa Rica--胜出的可能性为:0.675 Serbia--胜出的可能性为:0.325 ============= Germany Vs. Mexico Winner:Germany Germany--胜出的可能性为:0.803 Mexico--胜出的可能性为:0.197 ============= Brazil Vs. Switzerland Winner:Brazil Brazil--胜出的可能性为:0.887 Switzerland--胜出的可能性为:0.113 ============= Sweden Vs. South Korea Winner:Sweden Sweden--胜出的可能性为:0.680 South Korea--胜出的可能性为:0.320 ============= Belgium Vs. Panama Winner:Belgium Belgium--胜出的可能性为:0.935 Panama--胜出的可能性为:0.065 ============= England Vs. Tunisia Winner:England England--胜出的可能性为:0.841 Tunisia--胜出的可能性为:0.159 ============= Colombia Vs. Japan Winner:Colombia Colombia--胜出的可能性为:0.529 Japan--胜出的可能性为:0.471 ============= Poland Vs. Senegal Winner:Poland Poland--胜出的可能性为:0.725 Senegal--胜出的可能性为:0.275 ============= Egypt Vs. Russia Winner:Egypt Egypt--胜出的可能性为:0.642 Russia--胜出的可能性为:0.358 ============= Portugal Vs. Morocco Winner:Portugal Portugal--胜出的可能性为:0.824 Morocco--胜出的可能性为:0.176 ============= Uruguay Vs. Saudi Arabia Winner:Uruguay Uruguay--胜出的可能性为:0.708 Saudi Arabia--胜出的可能性为:0.292 ============= Spain Vs. Iran Winner:Spain Spain--胜出的可能性为:0.733 Iran--胜出的可能性为:0.267 ============= Denmark Vs. Australia Winner:Denmark Denmark--胜出的可能性为:0.534 Australia--胜出的可能性为:0.466 ============= France Vs. Peru Winner:France France--胜出的可能性为:0.904 Peru--胜出的可能性为:0.096 ============= Argentina Vs. Croatia Winner:Argentina Argentina--胜出的可能性为:0.754 Croatia--胜出的可能性为:0.246 ============= Brazil Vs. Costa Rica Winner:Brazil Brazil--胜出的可能性为:0.884 Costa Rica--胜出的可能性为:0.116 ============= Iceland Vs. Nigeria Winner:Nigeria Iceland--胜出的可能性为:0.248 Nigeria--胜出的可能性为:0.752 ============= Switzerland Vs. Serbia Winner:Switzerland Switzerland--胜出的可能性为:0.673 Serbia--胜出的可能性为:0.327 ============= Belgium Vs. Tunisia Winner:Belgium Belgium--胜出的可能性为:0.759 Tunisia--胜出的可能性为:0.241 ============= Mexico Vs. South Korea Winner:Mexico Mexico--胜出的可能性为:0.709 South Korea--胜出的可能性为:0.291 ============= Germany Vs. Sweden Winner:Germany Germany--胜出的可能性为:0.836 Sweden--胜出的可能性为:0.164 ============= England Vs. Panama Winner:England England--胜出的可能性为:0.961 Panama--胜出的可能性为:0.039 ============= Senegal Vs. Japan Winner:Senegal Senegal--胜出的可能性为:0.564 Japan--胜出的可能性为:0.436 ============= Poland Vs. Colombia Winner:Poland Poland--胜出的可能性为:0.764 Colombia--胜出的可能性为:0.236 ============= Uruguay Vs. Russia Winner:Uruguay Uruguay--胜出的可能性为:0.637 Russia--胜出的可能性为:0.363 ============= Egypt Vs. Saudi Arabia Winner:Egypt Egypt--胜出的可能性为:0.713 Saudi Arabia--胜出的可能性为:0.287 ============= Spain Vs. Morocco Winner:Spain Spain--胜出的可能性为:0.879 Morocco--胜出的可能性为:0.121 ============= Portugal Vs. Iran Winner:Portugal Portugal--胜出的可能性为:0.638 Iran--胜出的可能性为:0.362 ============= Peru Vs. Australia Winner:Australia Peru--胜出的可能性为:0.366 Australia--胜出的可能性为:0.634 ============= France Vs. Denmark Winner:France France--胜出的可能性为:0.823 Denmark--胜出的可能性为:0.177 ============= Argentina Vs. Nigeria Winner:Argentina Argentina--胜出的可能性为:0.801 Nigeria--胜出的可能性为:0.199 ============= Croatia Vs. Iceland Winner:Croatia Croatia--胜出的可能性为:0.960 Iceland--胜出的可能性为:0.040 ============= Germany Vs. South Korea Winner:Germany Germany--胜出的可能性为:0.834 South Korea--胜出的可能性为:0.166 ============= Mexico Vs. Sweden Winner:Mexico Mexico--胜出的可能性为:0.712 Sweden--胜出的可能性为:0.288 ============= Brazil Vs. Serbia Winner:Brazil Brazil--胜出的可能性为:0.879 Serbia--胜出的可能性为:0.121 ============= Switzerland Vs. Costa Rica Winner:Switzerland Switzerland--胜出的可能性为:0.683 Costa Rica--胜出的可能性为:0.317 ============= Poland Vs. Japan Winner:Poland Poland--胜出的可能性为:0.581 Japan--胜出的可能性为:0.419 ============= Colombia Vs. Senegal Winner:Colombia Colombia--胜出的可能性为:0.682 Senegal--胜出的可能性为:0.318 ============= Tunisia Vs. Panama Winner:Tunisia Tunisia--胜出的可能性为:0.916 Panama--胜出的可能性为:0.084 ============= Belgium Vs. England Winner:Belgium Belgium--胜出的可能性为:0.550 England--胜出的可能性为:0.450 ============= 进程已结束,退出代码0 您好!今天的内容《 大胆预测一下2022卡塔尔世界杯小组赛(世界杯2022世界杯时间)_世界杯 》 分享到这里,想了解更多,请关注波盈体育。您的关注是给小编最大的鼓励。免责声明:文中图片、文字引用至网络,版权归原作者所有,如有问题请联系删除!
Tags:- ·离队?德转:武磊冬窗加盟阿拉维斯的可能性为19%_西班牙人_西2022-01-26