AI预测世界杯2022冠军之路

最近世界杯正在打得火热,同时各个小组的排位赛也打得如火如荼。因此想着能不能用历年以来的世界杯成绩来模拟预测今年的夺冠球队呢?

恰好,在Kaggle官网上,有两份数据可以使用:

  • 国际大赛上,从1872年到2022年的足球比赛数据:包含主客队的信息、举办地方等。

  • 从1992到2022年中,每个国家的排名成绩

因此我们可以利用这两份数据进行数据分析。在模型中,利用随机森林进行预测,可以得到具体的模型结果。

那话不多说,我们直接看看具体的预测结果把。

小组赛预测

1

A组比赛结果

最后出线名单为:荷兰、厄瓜多尔

2

B组比赛结果

最后出线名单为:英格兰、伊朗

3

C组比赛结果

最后预测出线名单为:阿根廷、波兰

这一组中,从预测结果知道,目前阿根廷已经输了沙特,所以预测结果特别不准确。

而且身为“亚洲之光”的沙特,确实成为这一小组的黑马角色。

4

D组比赛结果

最后预测出线名单为:法国、丹麦

5

E组比赛结果

最后预测出线名单为:西班牙、德国

这一组被称为死亡之组,第一轮小组赛中,日本凭借顽强的意志力连入两球,亚洲足球与欧洲足球的差距越来越小。真的是梦想照进现实:

6

F组比赛结果

最后预测出线名单为:比利时、克罗地亚

这组比较正常,模型预测和实际的第一轮结果类似。

7

G组比赛结果

最后预测出线名单为:巴西、瑞士

这组巴西独一档,出现基本没有问题。

8

H组比赛结果

最后预测出线名单为:葡萄牙、乌拉圭

这一组由于韩国第一轮逼平了与乌拉圭,导致这个小组出线也扑朔迷离:

夺冠之路

整体总结

1.有亚洲球队的小组,模型会偏向于预测亚洲球队输球。但是实际情况来看,亚洲球队在本届世界杯,发挥都相当不错,目前取得了3胜一平的好成绩。(沙特、日本、伊朗分别赢了阿根廷、德国、威尔士)说明亚洲足球水平有明显的提升。

2.今年,巴西夺冠的概率很明显,看好今年巴西可以夺得大力神杯

3.E组不愧被称为死亡之组,模型大部分都预测错了,目前来看出线形势一片混乱。

4.最后,模型预测不一定百分百准确,只图大家一乐

好了,以上就是本期的具体内容了,具体可以关注我的知乎/公众号"算法一只狗"

我是leo,我们下期再见~

本文转载于网络 如有侵权请联系删除

相关文章

  • win10企业版激活简便方法

    大家好,又见面了,我是你们的朋友全栈君。win10企业版激活简便方法因为之前加固态,就拿去升级,顺便重装了一下系统,谁知道被坑了,给我看的时候显示的是激活,结果是假激活,有很多win10激活都是假激活,只有6个月的使用权限,因为如今装了很多编程软件,实在不想再重新装系统,于是找到了一种比较简单的方法,推荐给有相同境遇的朋友吧,非永久激活,也是6个月而已。1.首先启动超级管理器命令行右键左下角window图标  2、复制命令:slmgr.vbs/upk,按回车确定,弹出窗口显示“成功地卸载了产品密钥” 3、复制命令:slmgr/ipkNPPR9-FWDCX-D2C8J-H872K-2YT43,按回车确定,弹出窗口显示“成功的安装了产品密钥NPPR9-FWDCX-D2C8J-H872K-2YT43” 4、复制命令:slmgr/skmszh.us.to,按回车确定,弹出窗口显示“密钥管理服务计算机名成功的设置为zh.us.to” 5、复制命令:slmgr/ato,按回车确定,弹出框提示“成功激活产品” 6、附带如何查询你win10是永久激活还是非永久 复制命令slmgr.vbs-xp

  • 嵌入式编程是否应该用C++替代C语言

    嵌入式编程是否应该用C++替代C语言1.前言2.引进新的设计模式3.C++是一种不断更新的语言4.C++有着更加丰富的特性5.总结1.前言几十年来,嵌入式软件工程师们一直在争论是否应该使用C++替代C语言进行开发工作。根据2019年IEEE和github的市场调查显示,微控制器制造商提供的软件大部分都是由C语言编写。事实上,56%的嵌入式软件是用C语言编写的。然而,C++已经逐渐普及,大约23%的新嵌入式软件项目都是用C++编写的。C语言发展到现在,差不多50年的时间了,现在正是c语言过渡到C++语言成为嵌入式开发主流语言的最佳契机。对于习惯了用C语言开发的嵌入式程序员来说,对C++语言是有一些误解和偏见的。(1)C++执行效率低(2)C++生成的目标代码大(3)C++编程非常麻烦(4)没有指针概念,操作底层寄存器很复杂我认为,嵌入式工程师是应该好好去学习一下C++语言开发嵌入式程序的,ARM的MbedOS中也大量采用了C++编程语言。拒绝接受新的事物,害怕推翻旧有思维,固步自封,这样才可怕。嵌入式工程师从C到C++的转换,需要学习的不仅仅是一门新的语言,而实际上学习的是一种编程思维模

  • 智能合约:重入漏洞

    漏洞分析以太坊智能合约的特点之一是能够调用其他外部合约的代码,然而这些外部合约可能被攻击者劫持,迫使合约通过回退函数进一步执行代码,包括回调本身。在gas足够的情况下,合约之间甚至可以相互循环调用,直至达到gas的上限,但是如果循环中有转账之类的操作,就会导致严重的后果functionwithdraw(){ require(msg.sender,call.value(balances[msg.sender])()); balances[msg.sender]=0; }复制这种函数大多存在于钱包、去中心化交易所中,目的是为了让用户提款,将合约中的代币转换成通用的以太币但是有个问题是他没有先对用户的代币余额进行清零,而智能合约进行转账的时候会调用收款方fallback函数合约可以有一个未命名的函数——Fallback函数。这个函数不能有参数也不能有返回值。如果在一个到合约的调用中,没有其他函数与给定的函数标识符匹配(或没有提供调用数据),那么这个函数(fallback函数)会被执行。 另外每当合约收到以太币(没有任何数据),这个函数就会执行。此外,为了接收以太币,fallback函数必须

  • Valine如何添加多个表情

    前言自定义表情须知:valine.js版本需要1.4.5以上主题作者已更新主题添加了自定义表情的字段如果以上两点任意一点没有满足,需有自己动手满足以上两点的能力如何导入表情官方提供的格式是js对象格式,应该作者们应该会保留。因此我提供的格式为:"图片名":"图片链接",复制如果你使用的主题与我是同款主题,那么只需要将我提供的链接复制并粘贴到valine.json里(注意自己打上一对{}表情信息放括号里)即可。例如:{ "common_custom_1":"https://cdn.jsdelivr.net/gh/blogimg/picbed@master/2020/04/19/c3164053d300cc5cca5e4dc3311842dc.png", "common_custom_0":"https://cdn.jsdelivr.net/gh/blogimg/picbed@master/2020/04/19/6b5e768e524c8441ba66184bfdd86d4d.pn

  • 《Linux内核设计与实现》第3版

    《Linux内核设计与实现》第3版,英文版已经出版,中文版即将出版。本书基于linux2.6介绍了linux内核的设计与实现,涵盖了从核心内核系统的应用到内核设计与实现等各方面内容,主要内容包括:进程管理、调度、时间管理和定时器、系统调用接口、内存寻址、内存管理、页缓存、vfs、内核同步、可移植性、调试技术等。此外,本书还讨论了linux2.6颇具特色的内容,包括cfs调度程序、抢占式内核、块i/o层以及i/o调度程序。     本书详细描述了linux内核的主要子系统和特点,包括其设计、实现和接口,既介绍理论也讨论具体应用,填补了linux内核理论和实践细节之间的鸿沟。能够带领读者快速走进linux内核世界,真正开发内核代码。    如果你是一名linux内核爱好者,本书的内容可以帮助你大显身手。如果你是一名普通程序员,本书的内容将会拓宽你的编程思路。如果你初次接触linux内核,本书则可以帮助你对内核各个核心子系统有一个整体把握。    本版新增内容: ·增加一章专门描述内核数据结构 ·详细描述中断处理程序 ·扩充虚拟内存和内存分配的内容 ·调试linux内核的技巧 ·内核同步和锁

  • 华为网络工程师 | 听说MSTP配置很难?在我这里不存在,这篇文章可以用两字形容:真香!

    MSTP:Mulitistp多生成树协议(华为交换机默认运行mstp)工作原理:将多个vlan捆绑在一起,运行在一个stp实例里面,不同实例间的stp互相独立。注:默认情况下所有vlan都在实例0里面。交换机需要提前创建vlan和trunkmstp配置:instance1:vlan10 instance2:vlan20复制所有的交换机:stpregion-configuration region-namehcnp instance1vlan10 instance2vlan20 activeregion-configuration复制sw2:stpinstance2priority4096针对实例2将sw2的stp优先级调为4096复制注:配置sw1成为instance2的根桥:sw1stpinstance2rootprimary(sw1会自动降低优先级成为实例2的根桥) sw2:stpinstance2rootsecondarysw2将会自动降低优先级成为实例2的备份根桥复制VRRP+MSTP实现二层和三层的冗余:核心sw1:(作为vlan10用户的主路由器)interfaceVlan

  • 用vue开发一个所谓的数独

    1.前言最近的后台管理系统页面,功能暂时没有新的需求,就在想首页放什么东西,最近我想到的就是放个所谓的数独,为什么是所谓的数独,因为规则不同于标准的数独,只要求每一行每一列数字不一样就可以了!这个实例也是基于vue的,代码分享给大家。给大家代码,并不是要让大家直接拷贝代码,而是希望能让大家当做是一个练手的项目,或者学习到知识。如果大家觉得我哪里写得不好,写错了,欢迎指出,让大家交流意见,一起进步。代码上传到github了:有需要的可以star一下!vue-demos2.运行效果3.实现步骤实现步骤,感觉说得有点绕,建议大家边写边看文章,这样不会懵。或者直接去看源码(sudoku),把源码看懂!这个项目也不复杂!3-1.准备数据和排版排版的html+css代码我不多说了,排版很简单,这个相信都难不倒大家的。复杂一点的就是数据的交互! 下面开始第一步,把数独的数据先准备好,数据是什么,大家都知道,就是像下面这样的数据!排版出来的效果就是下面这样。html代码如下<divclass="num-table"@mouseleave="hoverCol=

  • 1分钟链圈 | 区块链技术评估,EOS居然排名第一!安全公司PeckShield:Fomo3D游戏存在“薅羊毛”安全漏洞

    这里是7月24日的每日1句话新闻晚报,只需1分钟,看看全球最热、最新的区块链新闻。实时币价:BTC$8030ETH$469.98EOS$8.09(数据来源:Bitfinex)观点中国软件行业协会区块链分会副秘书长陈端:区块链或促发传媒产业新变革趣链科技CEO李伟:区块链技术并非单纯点对点和多中心化公司58集团首次举办区块链创新大赛区块链公司爱尚比特与特斯拉共同推进区块链技术在汽车行业的应用掌御科技与上海交大、中国信通院联合成立区块链安全研究中心BSRC全球韩国电信运营商KT推出区块链供电网络伦敦警察新增培训项目,以应对日渐增多的数字货币洗钱行为韩国FSC新成立的金融创新局或暗示该国准备接受加密货币和区块链技术趋势工信部下属赛迪区块链研究院:技术评估榜单中,EOS排名第一,以太坊排名第二币改官方发言人陈菜根:报名企业已有五六十家,具体名单暂不透露安全公司PeckShield:Fomo3D游戏存在“薅羊毛”安全漏洞西安电子科技大学与宁波共同推进区块链等技术研究恭喜你,今天的新闻全部看完啦。1分钟链圈事,周二打卡成功。想看详细信息?以下1分钟,让你了解个透!1.工信部下属赛迪区块链研究院:技

  • 谈谈序列化—实体bean一定要实现Serializable接口?

    导读:最近在做项目的过程中,发现一个问题,就是我们最开始的时候,传递参数包括返回类型,都有map类型。但是由于map每次都要匹配key值,很麻烦。所以在之后就将参数传递和返回类型全都改成了实体bean,并且让每个bean都实现了Serializable接口。然后,在这里的时候,就有点疑惑。首先:为什么要进行序列化;其次:每个实体bean都必须实现serializabel接口吗?最后:我做一些项目的时候,没有实现序列化,同样没什么影响,然后现在做项目需要序列化,到底什么时候应该进行序列化操作呢?本篇文章,是我对于序列化这个话题的一点小小的思考,可能还不太成熟,请每一个路过的人不吝赐教,在此,先谢过了!一、什么是序列化Incomputerscience,inthecontextofdatastorage,serializationistheprocessoftranslatingdatastructuresorobjectstateintoaformatthatcanbestored(forexample,inafileormemorybuffer,ortransmittedacrossa

  • 服务业能否独善其身?员工的失业焦虑

    编者按未来学家预言,如今三分之一的工作将会在2025年被智能技术、人工智能、机器人技术和运算法则(STARA)所替代。然而对于员工如何看待自己工作和职业领域的技术进步,以及面对这些潜在变化他们如何做准备,人们却知之甚少。本研究创造了一项新测量方法(STARA意识),用于检测员工对自己工作被STARA取代的感知程度。由于职业发展和技术知识与年龄有关,作者将年龄作为STARA的调节变量。作者发现,STARA意识与组织承诺、职业满意度呈负相关,与离职意向、愤世嫉俗感和抑郁感呈正相关。这是社论前沿第S820次推送(微信号:shelunqianyan)研究背景由于智能技术、人工智能、机器人技术和运算法则(SmartTechnology,ArtificialIntelligence,Robotics,andAlgorithms,以下简称STARA)的发展,史蒂芬霍金和比尔盖茨等顶尖科学家和商业人士已经发出了大规模失业的警告。由于灵敏度和智能性有了显著提高,加之自动部件的低成本化,在许多手工和概念化任务上,机器人均有可能超过人类。这些技术可以从零售自助结账的普及、智能手机的应用、会计自动化、物联网和

  • RequestTemplate红队内网渗透工具

    声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。RequestTemplate是一款两端并用的红队渗透工具以及甲方自查工具,其在内网渗透过程中有着不可替代的作用。客户端用Golang以其精巧、快速的特点打造而成,快速发现内网中脆弱的一环。复现端用Java以其生态稳定、跨平台、UI精美的特点打造而成,最小的发包量和平台的集成性验证脆弱的一环。项目地址: https://github.com/1n7erface/RequestTemplate复制0x01应用场景红蓝对抗中红队的内网利器 甲方建设中内网的自查帮手0x02具备特点网段探测:检测当前机器连通的网段情况横向移动:多种弱口令爆破模块,可通过同目录下config.json配置WEB扫描:集成Xray三百多种POC检测漏洞验证:使用Java端配置代理对扫描结果进行复现验证截图0x03 RequestTemplate客户端root@VM-4-13-ubuntu:~#

  • Python: 数据类型的常用操作

    字符串的常用方法             代码示例: 1""" 2字符串的操作 3""" 4#首字母大写的方法 5str='daweixiaoming' 6info='hello小明' 7num_str='1314' 8 9newstr=str.capitalize() 10new_info=info.capitalize() 11new_num_str=num_str.capitalize() 12print(newstr) 13print(new_info) 14print(new_num_str) 15 16#字符串全部小写的方法lower()/casefold()这两个方法几乎一致,lower()只对英文有效,casefold()可对其他语种有效 17message_en='Howdoyoudo?XiaoMing' 18message_ch='你好呀,XiaoMing' 19message_mix='你好呀,XiaoMing,今天星期3!' 20 21message_en_lower=message_en.lowe

  • Golang开发环境搭建

    目录Golang的诞生Golang的核心开发团队Golang里程碑Golang应用领域使用Golang开发的项目环境搭建GolangSDK下载及安装GolangIDE下载及安装Goland下载及安装首次使用Goland通过Goland创建一个HelloGolang项目 Golang的诞生 计算机硬件技术更新频繁,性能提高很快。目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能。 软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言。 企业运行维护很多c/c++的项目,C/C++程序运行速度虽然很快(因为采用静态编译),但是编译速度却很慢,同时还存在内存泄露的一系列困扰需要解决。 Golang的核心开发团队 KenThompson(肯·汤普逊):1983年图灵奖、1998年美国国家技术奖得主,他与Dennis Ritchie是Unix系统的原创者。Thompson也发明了C语言、B语言,同时也是C语言的主要发明人。 RobPike(罗布·派克):加拿大人,曾是贝尔实验室的Unix团队和Plan9操作计划的成员。他与Thomp

  • Linux磁盘管理——BIOS和UEFI

    参考:BIOSandUEFI-CompTIAA+220-901-1.1 BIOSandUEFIAsFastAsPossible 严格上来说BIOS和UEFI除了在搜索bootabledevice时和磁盘有点关系,剩下就没有任何关系了。BIOS和UEFI时独立于OS的存在。 BIOS与UEFI基本功能差不多,最终都是要到bootabledevice上去找MBR(或者GPT)。接下来的工作就是bootloader加载Kernel,initrd等等。 上下的差别看参考链接就够了  

  • 智能指针shared_ptr的实现

    #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> usingnamespacestd; classsharedPtr{ public: sharedPtr(){ cout<<"calldefaultconstruct\n"; }; sharedPtr(int*_next,int*_val):next(_next),val(_val){ cout<<"callsharedPtrconstruct\n"; *next=*next+1; cout<<"next="<<*next<<endl; }; sharedPtr(constsharedPtr&a){ cout<<"callsharedPtrcopyconstruct\n"; if(this==&a)return; next=a.next; val=a.val; *next=*next+1; cout<

  • 数据增强 imgaug 框架使用

    官方文档 https://imgaug.readthedocs.io/en/latest/source/overview/arithmetic.html#cutout   首先下载项目 https://github.com/aleju/imgaug复制 然后建立conda独立环境 condainstallsixnumpyscipyPillowmatplotlibscikit-imageimageio condainstall-cmenpoopencv复制     代码 注意待增强的图片需要分别放置于/abc/下单独的文件夹,以保证每个文件夹都是相关增强图片 #-*-coding:utf-8-*- """ 图片增强 一个目录下有多个类别 """ importnumpyasnp importimgaugasia importimgaug.augmentersasiaa importmatplotlib.pyplotasplt importos fromskimageimportio importrandom importtime #根目录

  • Java基础(第二期)

    数据类型扩展以及面试题讲解 整数拓展:进制 inti=10; inti2=010;//八进制0 inti3=0x10;//十六进制0x0~9A~F16 相关进制转换自行学习,用的不多 浮点数拓展 银行业务怎么表示?钱的问题意味着精准不能出错 通常实用BigDecimal来表示,这是一个数学工具类 float与double有有限,离散,接近但不等于,舍入误差这样的特点 因此最好不要使用浮点数进行比较     floatf=0.1f;//0.1    doubled=1.0/10;//0.1    System.out.println(f==d);//false​    floatd1=22223333333333333f;    floatd2=d1+1;    System.out.println(d1==d2);//true复制 字

  • 深入理解系统调用

    一实验内容 找一个系统调用,系统调用号为学号最后2位相同的系统调用通过汇编指令触发该系统调用通过gdb跟踪该系统调用的内核处理过程重点阅读分析系统调用入口的保存现场、恢复现场和系统调用返回,以及重点关注系统调用过程中内核堆栈状态的变化 二实验环境 虚拟机:VMware®Workstation12ProLinux:ubuntu-18.04.4-desktop-amd64 三实验过程 1环境搭建   1.1安装开发工具 1sudoaptinstallbuild-essential 2sudoaptinstallqemu#installQEMU 3sudoaptinstalllibncurses5-devbisonflexlibssl-devlibelf-dev复制   1.2下载内核源代码 1sudoaptinstallaxel 2axel-n20https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/ 3linux-5.4.34.tar.xz 4xz-dlinux-5.4.34.tar.xz 5tar-xvflinux-5.4.3

  • Codeforces 460 DE 两道题

    DLittleVictorandSet 题目链接 构造的好题。表示是看了题解才会做的。 假如[l,r]长度不超过4,直接暴力就行了。 假如[l,r]长度大于等于5,那么如果k=1,显然答案应该是l;如果k=2,可以找到a^(a+1)=1;如果k=3,首先只取两个就得到一个下界为1,但是可能出现为0的情况,下面再仔细讨论。如果k>=4,可以找到两组a^(a+1)=1,所以答案是0。 现在剩下的问题就是如何判断k=3的情况答案能否为0了。答案为0时我们只有可能取了3个数,设它们为x,y,z,并且不妨设有l<=z<y<x<=r。 我们考虑x的最高位非零位。这一位y必须是1,z必须是0,因为y>z并且它们的异或和为0。考虑接下来一位,假如z的这一位为0,我们可以将x,y的上一位变为0,这一位都变为1。注意到x,y,z仍然是满足条件的,因为x变小了,而z变大了,而x>y>z依然满足。最后,我们发现z的第一个非零位。我们将z后面的位全部填为1,x,y的前一位都为1,当前位x必为1,y必为0,后面我们将x全部填为0,y全部填为1。显然,x不会变大,z不

  • Codeforces 1312D. Count the Arrays

    Codeforces1312D.CounttheArrays 题意: 计算满足如下要求的序列的数量。 1:序列长度为\(n\)。 2:序列中的元素为1~m。 3:序列中有且仅有一对数字相等。 4:序列有一个分界点,分界点左边的数字严格单调递增,右边的数字严格单调递减。 数据范围:\(2\leqn\leqm\leq2e5\)。 对结果取\(mod\998244353\)。 思路: 首先特判,就是当\(n=2\)时,没有满足条件的序列,输出0。 来看一般情况,为了方便理解,我们画一张图。 这是一个满足条件的序列,满足图像成山峰型,且仅一对数字相等。 我们可以发现,除了4相等之外,其他数字都是不同的。 所以我们可以转化一下。 将其视为一个数字两两不同的递增序列,那满足这样条件的序列有多少种? 我们可以直接从\(m\)个数字中选\(n-1\)个出来,一定可以组成这样一个递增序列,所以答案是: \[C_{m}^{n-1} \]但是还有许多情况漏解,比如说我原序列有两个\(1\),得到的递增序列也是如上图所示。 那么我们就会发现,除了最大的数字之外,所有的数字都可以裂化为两个放到最大数字的

  • Mock Server

     转载:https://testerhome.com/topics/14753 一、添加项目和描述      二、添加API以及默认格式           { "data":{},#预期传递的参数,可验证参数的type、contains、equals、length、between;data为{},不进行验证复制   "invalid":{},#无效数据,验证参数失败后,返回无效数据复制   "method":"GET","name":"查询宝宝接口","url":"/babys",    "valid":{}#有效数据,验证正常后的接口返回值}复制     三、浏览器访问http://192.168.0.100:8002/MockServer/test  

相关推荐

推荐阅读