使用python代码预测,国足VS沙特,这次踢沙特能逆天改命吗?

2025年3月20日国足vs沙特,国足是客场,沙特是主场。可惜上次主场已经是1:2输了比赛,本次是否能够逆天改命,扳回一局,且看AI分析战果。

一、历史战绩

我在网上查询到中国VS沙特的历史战绩如下:

| 比赛日期 | 赛事 | 比分(中国 : 沙特) | 结果 | 比赛地点 |

| -------------- | ------------------ | ------------------- | ---- | ---------------- | 

| 1978-12-12    | 亚洲杯小组赛      | 0 : 1              | 负  | 曼谷(泰国)    | 

| 1981-01-28    | 世界杯预选赛      | 0 : 2              | 负  | 达曼(沙特)    | 

| 1981-02-12    | 世界杯预选赛      | 2 : 0              | 胜  | 北京(中国)    | 

| 1984-12-16    | 亚洲杯小组赛      | 0 : 0              | 平  | 新加坡          | 

| 1988-12-03    | 亚洲杯半决赛      | 0 : 1              | 负  | 多哈(卡塔尔)  | 

| 1990-08-18    | 友谊赛            | 1 : 2              | 负  | 吉达(沙特)    | 

| 1990-08-22    | 友谊赛            | 0 : 0              | 平  | 吉达(沙特)    | 

| 1993-10-15    | 世界杯预选赛      | 1 : 1              | 平  | 多哈(卡塔尔)  | 

| 1997-09-19    | 世界杯预选赛      | 0 : 1              | 负  | 利雅得(沙特)  | 

| 1997-10-31    | 世界杯预选赛      | 1 : 1              | 平  | 大连(中国)    | 

| 2007-07-15    | 亚洲杯小组赛      | 2 : 0              | 胜  | 雅加达(印尼)  | 

| 2009-06-04    | 友谊赛            | 1 : 4              | 负  | 广州(中国)    | 

| 2013-02-06    | 亚洲杯预选赛      | 1 : 2              | 负  | 多哈(卡塔尔)  | 

| 2014-11-18    | 亚洲杯预选赛      | 0 : 0              | 平  | 广州(中国)    | 

| 2021-10-12    | 世界杯预选赛      | 2 : 3              | 负  | 吉达(沙特)    | 

| 2022-03-24    | 世界杯预选赛      | 1 : 1              | 平  | 苏州(中国)    | 

| 2024-01-21    | 亚洲杯小组赛      | 0 : 2              | 负  | 多哈(卡塔尔)  | 

| 2024-09-10    | 世界杯预选赛      | 1 : 2              | 负  | 大连(中国)    | 

总成绩统计:

总场次:17场

中国胜场:2场

平局:6场

中国负场:9场

进球数:12球

失球数:21球

二,使用数据进行训练

将以上数据进行整理,放入到python代码中。

import pandas as pd  
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import LabelEncoder, StandardScaler
import numpy as np

# 1. 数据准备
data = {
'比赛日期': ['1978-12-12', '1981-01-28', '1981-02-12', '1984-12-16', '1988-12-03', '1990-08-18',
'1990-08-22', '1993-10-15', '1997-09-19', '1997-10-31', '2007-07-15', '2009-06-04',
'2013-02-06', '2014-11-18', '2021-10-12', '2022-03-24', '2024-01-21', '2024-09-10'],
'赛事': ['亚洲杯小组赛', '世界杯预选赛', '世界杯预选赛', '亚洲杯小组赛', '亚洲杯半决赛', '友谊赛',
'友谊赛', '世界杯预选赛', '世界杯预选赛', '世界杯预选赛', '亚洲杯小组赛', '友谊赛',
'亚洲杯预选赛', '亚洲杯预选赛', '世界杯预选赛', '世界杯预选赛', '亚洲杯小组赛', '世界杯预选赛'],
'比分(中国 : 沙特)': ['0 : 1', '0 : 2', '2 : 0', '0 : 0', '0 : 1', '1 : 2',
'0 : 0', '1 : 1', '0 : 1', '1 : 1', '2 : 0', '1 : 4',
'1 : 2', '0 : 0', '2 : 3', '1 : 1', '0 : 2', '1 : 2'],
'结果': ['负', '负', '胜', '平', '负', '负', '平', '平', '负', '平', '胜', '负', '负', '平', '负', '平', '负', '负'],
'比赛地点': ['曼谷(泰国)', '达曼(沙特)', '北京(中国)', '新加坡', '多哈(卡塔尔)', '吉达(沙特)',
'吉达(沙特)', '多哈(卡塔尔)', '利雅得(沙特)', '大连(中国)', '雅加达(印尼)', '广州(中国)',
'多哈(卡塔尔)', '广州(中国)', '吉达(沙特)', '苏州(中国)', '多哈(卡塔尔)', '大连(中国)']
}

df = pd.DataFrame(data)

# 2. 特征提取
# 2.1 胜负结果转换 (胜=1, 平=0, 负=-1)
df['结果'] = df['结果'].map({'胜': 1, '平': 0, '负': -1})

# 2.2 主客场
df['主场'] = df['比赛地点'].apply(lambda x: 1 if '中国' in x else 0)

# 2.3 比分拆分
df[['中国进球', '沙特进球']] = df['比分(中国 : 沙特)'].str.split(' : ', expand=True).astype(int)

# 2.4 赛事类型 one-hot 编码
df = pd.get_dummies(df, columns=['赛事'])

# 3. 数据准备
X = df[['主场', '中国进球', '沙特进球'] + [col for col in df.columns if '赛事_' in col]]
y = df['结果']

# 4. 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 5. 模型训练
model = LogisticRegression()
model.fit(X_train, y_train)

# 6. 预测2025年3月20日的比赛
# 假设比赛在中国进行, 赛事为世界杯预选赛
new_data = pd.DataFrame({
'主场': [1],
'中国进球': [0], # # 在中国踢,buff叠满
'沙特进球': [0], # 假装大家都很谦让
'赛事_亚洲杯半决赛': [0],
'赛事_亚洲杯小组赛': [0],
'赛事_亚洲杯预选赛': [0],
'赛事_友谊赛': [0],
'赛事_世界杯预选赛': [1] # 触发国足传统艺能
})

# 预测结果
predicted_proba = model.predict_proba(new_data)
print("预测概率:", predicted_proba)

# 简单的结果判定
predicted_result = model.predict(new_data)
print("预测结果:", predicted_result)

# 概率分析
proba_win = predicted_proba[0][2] # 胜的概率
proba_draw = predicted_proba[0][1] # 平的概率
proba_loss = predicted_proba[0][0] # 负的概率

# 根据概率给出更详细的分析
if proba_win > 0.5:
print("预测:中国队有较大可能获胜")
elif proba_draw > 0.5:
print("预测:比赛更有可能打平")
else:
print("预测:沙特队更有可能获胜")

运行代码后:

预测概率: [[0.45(输), 0.35(平), 0.20(赢)]]

预测结果: [-1]

翻译成人话

输球概率45%

平局概率35%

赢球概率20%

三,总结

要像获胜还真的不简单。

# 隐藏代码彩蛋  
if "裁判突然眼瞎":
print("国足获胜概率+50%!速买红色内裤开光!")

如果要猜比分的话,我猜1:1

如果参考沙特还需要东风快递的话,那我猜2:1赢他们也是可能的。

归化这个能上场吗,如果上场的话,那预测就不准了,因为历史比赛没有外援参加。国足更有希望赢。

祝中国队好运。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容