AI 预测世界杯比赛结果,惊掉下巴

2023-11-20

哈喽,大家好。

今天看到Kaggle上有一个预测世界杯比赛结果的项目,截至目前 4 场比赛预测结果全中。

今天把源码研究了一下,做了中文注释,给大家分享下。

图片

技术提升

本文由技术群粉丝分享,项目源码、数据、技术交流提升,均可加交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

方式①、添加微信号:dkl88191,备注:来自CSDN +研究方向
方式②、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

1. 获取数据集

数据集使用 1872-2022年国际足球比赛数据和FIFA 1992-2022年球队排名数据。

图片

比赛数据

图片

排名数据

虽然有数据集很大,但作者只用了 2018-2022年的数据作为训练数据。

df =  pd.read_csv("./kaggle/input/international-football-results-from-1872-to-2017/results.csv")

df = df[(df["date"] >= "2018-8-1")].reset_index(drop=True)

图片

2. 特征工程

选取的特征要能够较好地反映预测结果,如:

  • 世界杯球队的平均进球数

  • 球队最近5场比赛的平均进球数

  • 世界杯球队的平均犯规数

  • 球队最近5场比赛的平均犯规数

  • 球队在世界杯中 FIFA 平均排名

  • 球队在最近5场比赛中 FIFA 平均排名

  • FIFA积分

  • 最近5场FIFA积分

  • 比赛得分

  • 最近5场比赛积分

  • Mean game points by rank faced at the Cycle.

  • Mean game points by rank faced at last 5 games.

通过观察这些特征的小提琴图,筛选对预测结果又很强区分的特征。

图片

对于值比较小的特征,可以尝试用箱型图观察。

图片

最终生成的特征为:

最终特征如下:

  • rank_dif

  • goals_dif

  • goals_dif_l5

  • goals_suf_dif

  • goals_suf_dif_l5

  • dif_rank_agst

  • dif_rank_agst_l5

  • goals_per_ranking_dif

  • dif_points_rank

  • dif_points_rank_l5

  • is_friendly

3. 建模

作者选择了随机森林GradientBoosting模型进行训练,并对比他们的 AUC

图片

GradientBoosting

图片

随机森林

最终选取GradientBoosting作为预测模型。

4. 预测

预测需要获取 2022 世界杯比赛数据。

作者通过爬取维基百科解析出比赛数据,考虑到国内很多朋友无法访问维基百科。源代码中我已经将比赛数据放在本地文件中。

图片

kaggle地址:https://www.kaggle.com/code/sslp23/predicting-fifa-2022-world-cup-with-ml/notebook

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AI 预测世界杯比赛结果,惊掉下巴 的相关文章

  • 如何将one-hot向量转换为多标签?

    我有一项多分类任务 并且我得到了像这样的单热类型预测 0 1 1 0 1 0 1 0 1 我希望将这个单热向量转换为标签 例如 1 2 1 0 2 我已经尝试过 tf argmax 但它不起作用 那么我该如何处理呢 使用列表理解 oheLi
  • 如何有条件地组合两个相同形状的 numpy 数组

    这听起来很简单 但我想我把它想得太复杂了 我想创建一个数组 其元素是从两个形状相同的源数组生成的 具体取决于源数组中哪个元素更大 为了显示 import numpy as np array1 np array 2 3 0 array2 np
  • 如何在“python setup.py test”中运行 py.test 和 linter

    我有一个项目setup py文件 我用pytest作为测试框架 我还在我的代码上运行各种 linter pep8 pylint pydocstyle pyflakes ETC 我用tox在多个 Python 版本中运行它们 并使用以下命令构
  • 如何用xlrd读取公式

    我正在尝试做一个解析器 它读取几个 Excel 文件 我通常需要位于行底部的值 您可以在其中找到所有上部元素的总和 因此 单元格值实际上是 sum 或 A5 0 5 可以说 对于使用 Excel 打开此文件的用户来说 它看起来像一个数字 这
  • 为 PyCharm 中的所有配置设置相同的环境变量

    我有一个与 Celery 和很多不同的工作人员一起的项目 如何避免每次将 PyCharm 中的环境变量复制粘贴到每个运行 调试配置 有什么方法可以在项目设置中设置它们吗 找到解决方案here https stackoverflow com
  • 远程控制或脚本打开 Office 从 Python 编辑 Word 文档

    我想 最好在 Windows 上 在特定文档上启动 Open Office 搜索固定字符串并将其替换为我的程序选择的另一个字符串 我该如何从外部 Python 程序中做到这一点 OLE 什么 原生 Python 脚本解决方案 The doc
  • 使用 Python 中的 IAM 角色访问 AWS API Gateway

    我有一个 AWS API 网关 我想使用它来保护其安全IAM 角色 http docs aws amazon com apigateway latest developerguide permissions html 我正在寻找一个包来帮助
  • 基于 True/False 值的 Python 优雅赋值

    我想根据三个布尔值中的值设置一个变量 最直接的方法是 if 语句后跟一系列 elif if a and b and c name first elif a and b and not c name second elif a and not
  • 在python中调用subprocess.Popen时“系统找不到指定的文件”

    我正在尝试使用svnmerge py合并一些文件 它在底层使用 python 当我使用它时 我收到一个错误 系统找不到指定的文件 工作中的同事正在运行相同版本的svnmerge py 以及 python 2 5 2 特别是 r252 609
  • 使用reduce方法的斐波那契数列

    于是 我看到有人用reduce方法来计算斐波那契数列 这是他的想法 1 0 1 1 2 1 3 2 5 3 对应于 1 1 2 3 5 8 13 21 代码如下所示 def fib reduce n initial 1 0 dummy ra
  • 熊猫记忆

    我有冗长的计算 我重复了很多次 因此 我想使用记忆 诸如jug http packages python org Jug and joblib http packages python org joblib memory html 与Pan
  • 如何像在浏览器中一样检索准确的 HTML

    我正在使用 Python 脚本来呈现网页并检索其 HTML 它适用于大多数页面 但对于其中一些页面 检索到的 HTML 不完整 我不太明白为什么 这是我用来废弃此页面的脚本 由于某种原因 每个产品的链接不在 HTML 中 Link http
  • 将具有不同大小的行的数据加载到 Numpy 数组中

    假设我有一个包含如下数据的文本文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 如何将它加载到 numpy 数组中 使其看起来像这样 1 2 3 4 5 0 6 7 8 0 0 0 9 1
  • 如何获取 Matplotlib 生成的散点图的像素坐标?

    我使用 Matplotlib 生成散点图的 PNG 文件 现在 对于每个散点图 除了 PNG 文件之外 我还会also就像生成散点图中各个点的像素坐标列表一样 我用来生成散点图 PNG 文件的代码基本上是这样的 from matplotli
  • 如何将reportlab与Google应用程序引擎一起使用

    我无法在谷歌应用程序引擎下正确导入reportlab 根据以下guide http blog notdot net 2010 04 Generating PDFs on App Engine Python and introducing M
  • 与函数复合 UniqueConstraint

    一个快速的 SQLAlchemy 问题 我有一个 文档 类 其属性为 数字 和 日期 我需要确保没有重复的号码同年 是 有没有办法对 数字 年份 日期 进行UniqueConstraint 我应该使用唯一索引吗 我如何声明功能部分 SQLA
  • 将参数传递给 __enter__

    刚刚学习 with 语句尤其是这篇文章 http effbot org zone python with statement htm 问题是 我可以传递一个参数给 enter 我有这样的代码 class clippy runner def
  • python csv按列转换为字典

    是否可以将 csv 文件中的数据读取到字典中 使得列的第一行是键 同一列的其余行构成列表的值 例如 我有一个 csv 文件 strings numbers colors string1 1 blue string2 2 red string
  • Windows 与 Linux 文本文件读取

    问题是 我最近从 Windows 切换到 Ubuntu 我的一些用于分析数据文件的 python 脚本给了我错误 我不确定如何正确解决 我当前仪器的数据文件输出如下 Header 有关仪器等的各种信息 Data 状态 代码 温度 字段等 0
  • 使用Python重命名目录中的多个文件

    我正在尝试使用以下 Python 脚本重命名目录中的多个文件 import os path Users myName Desktop directory files os listdir path i 1 for file in files

随机推荐

  • 无线测距设备和原理介绍

    UWB 超宽带 无线测距传感器是一种基于超宽带技术开发的无线测距传感器 该设备可以实现1对1 或者1对多或者多对多个设备之间互相测距 设备测距精度可达3 10厘米 测距距离可到500多米 测距频率最高可达200Hz 如下图所示为1对1频率5
  • 孤儿进程与僵尸进程[总结](转)

    转自http www cnblogs com Anker p 3271773 html 1 前言 之前在看 unix环境高级编程 第八章进程时候 提到孤儿进程和僵尸进程 一直对这两个概念比较模糊 今天被人问到什么是孤儿进程和僵尸进程 会带来
  • 【WPS】论文添加引用和参考文献简明方法 (图文详解)

    对于日常的作业 报告 草稿等 经常会用 Office Word 或 WPS Word 来编辑和整理 以下 本文将说明 如何用 WPS 为论文添加引用 尾注 和参考文献 WPS 2019 1 正文中 用鼠标左击 将输入光标放在 需要放置方括号
  • 离散数据与连续数据

    离散数据 离散数据是指其数值只能用自然数或整数单位计算的数据 例如 企业个数 职工人数 设备台数等 只能按计量单位数计数 这种数据的数值一般用计数方法取得 在统计学中 数据按变量值是否连续可分为连续数据与离散数据两种 连续数据 在一定区间内
  • Caffe源码中caffe.proto文件分析

    Caffe源码 caffe version 09868ac date 2015 08 15 中有一些重要文件 这里介绍下caffe proto文件 在src caffe proto目录下有一个caffe proto文件 proto目录下除了
  • 包的创建、包的命名、包的导入

    包 package 1 分门别类的管理java文件 2 避免文件重名 3 保护包内的文件 包的命名 1 公司域名的到写 部门名称 项目名称 模块名称 部门名可以不写 2 用 作为分隔符 例 com openlab phone employe
  • 数据库选型粗略对比,欢迎补充!!!

    关系型数据库 Oracle SQL Server MySQL PostgreSQL SQLite Oracle 甲骨文开发的商业数据库 不开源 支持所有主流平台 性能好 功能强 稳定性好 安全性好 支持大数据量 比较复杂 收费昂贵 SQL
  • Unity3D小程序部署与开发

    Unity3D目前已经支持微信小程序开发 目前正处于公测阶段 可以参考文档 这样我们只需要在unity本地开发完 一键导出微信小程序工程发布即可 0 下载小程序开发工具与Unity 微信小程序插件 小程序开发工具 wechat devtoo
  • 本地jar上传至私服

    本地jar上传至私服 一 eclipse的maven 打包 安装在本地仓库 二 使用cmd命令行将jar包上传至maven私服 三 一二中已完成 另 将jar包安装在本地仓库 一 eclipse的maven 打包 安装在本地仓库 1 对po
  • logn是以什么为底_一文带你了解算法复杂度O(1),O(n),O(logn),O(nlogn)的含义

    相信很多开发的同伴们在研究算法 排序的时候经常会碰到O 1 O n O logn O nlogn 这些复杂度 看到这里就会有个疑惑 这个O N 到底代表什么呢 首先o 1 o n o logn o nlogn 是用来表示对应算法的时间复杂度
  • 【element中el-cascader使用及自定义key名】

    element中el cascader使用及自定义key名 下面展示一些 内联代码片 el cascader的通过改变值时 获取当前选中数据 根据接口返回数据 灵活定义key名 template中的应用 options为数据 1 props
  • mermaid

    Butterfly在不久的未来能支持mermaid https butterfly js org posts 4aa8abbe mermaid
  • Qt开发记录2——功能开发——按钮-打开缓存(打开本地文件夹)

    链接1 qt程序实现打开文件夹 链接2 QT5 利用QDesktopServices打开本地文件或文件夹 目录 打开缓存 打开本地文件夹 在UI界面拖拽一个按钮控件 转到槽 跳转到槽函数编写代码 打开缓存 打开本地文件夹 需求 选中扫描到本
  • dns提供商主机名_什么是FQDN?它和主机名有区别吗?

    请关注本头条号 每天坚持更新原创干货技术文章 如需学习视频 请在微信搜索公众号 智传网优 直接开始自助视频学习 1 前言 本文主要讲解什么是FQDN 什么是FQDN 2 FQDN的名词解释 完全限定域名fully qualified dom
  • (Python)计算平均值

    计算平均值 问题描述 从键盘输入三个整数 分别存入x y z三个整型变量中 计算并输出三个数的和以及平均值 输入形式 从键盘输入三个整数 整数之间以空格隔开 输出形式 在屏幕上分两行显示结果 第一行为三个数的和 整数形式输出 第二行为三个数
  • 数据库设计范式的理解

    文章来自 http www ccvita com 418 html 前言 为什么要写这篇文章呢 从去年年底开始 就和很多做技术的朋友交流过 从数据库设计到数据库架构各个方面的内容 有一些朋友执着于ORM 执着于所谓的数据库设计 却忘记了一切
  • 惠普服务器硬盘指示灯不亮或显示蓝色

    通过惠普服务器指示灯我们可以了解服务器当前的运行状态 指示灯不同的颜色和闪烁频率都代表不同的意义 那么惠普服务器硬盘指示灯不亮是什么原因导致的呢 如果已经在系统中安装了一个或多个硬盘 请检查下列各项 1 硬盘的电源线与信号线安装是否正确 2
  • 数仓面试总结

    2021年5月开始找工作 面试了若干个数仓的岗位 面的差不多也就2个 总结下大致的面试内容 一 字节视频面 上海的一个部门 视频面挂 小伙伴内推的 这个5月份面的 大概视频面试了一个小时 主要面试内容 1 问了mapreduce的具体执行过
  • MySQL减一年的日期函数_MySQL 日期加减函数汇总

    1 addtime 为日期加上指定秒数select addtime now 1 加1秒 2 adddate 有两种用法 第二个参数直接填数字的话是为日期加上指定天数 填interval的话是为日期加上指定的interval时间select
  • AI 预测世界杯比赛结果,惊掉下巴

    哈喽 大家好 今天看到Kaggle上有一个预测世界杯比赛结果的项目 截至目前 4 场比赛预测结果全中 今天把源码研究了一下 做了中文注释 给大家分享下 文章目录 技术提升 1 获取数据集 2 特征工程 3 建模 4 预测 技术提升 本文由技