使用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赢他们也是可能的。

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

祝中国队好运。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

互联网时光机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值