[世界杯]根据赔率计算各种组合可能性与赔率

news2024/11/25 6:53:40

目录

一、背景

二、数据输入

2.1 赔率示意图

2.2 代码

三、数据处理

3.1 计算各种组合可能性

3.2 修正概率

四、输出结果


一、背景

本文以世界杯体彩“混合过关”4场串胜平负为的赔率进行编码

其他类型如比分 、总进球数可以参考代码进行相应修改

需要的库:numpy与pandas

二、数据输入

2.1 赔率示意图

 2.2 代码

采用字典保存各比赛对应的胜平负的赔率

import pandas as pd
import numpy as np

vs1 = {"胜":2.38,"平":2.93,"负":2.65} #厄瓜多尔-塞内加尔
vs2 = {"胜":13.0,"平":6.20,"负":1.11} #卡塔尔-荷兰
vs3 = {"胜":3.58,"平":3.16,"负":1.84} #伊朗-美国
vs4 = {"胜":7.35,"平":4.16,"负":1.31} #威尔士-英格兰

三、数据处理

3.1 计算各种组合可能性

计算采用的公式主要为:(图中10%为抽水率,仅为假设)

其中0.9913为初步计算得到的体彩抽水率,实际不准确,该数值仅供初步计算,之后需要根据计算所得的概率进行相应修正

count = 1
probList = []
probListIndex = []
probVs = []
timesList = []

vsCode1 = []
vsCode2 = []
vsCode3 = []
vsCode4 = []

for key1,each1 in vs1.items():
    for key2,each2 in vs2.items():
        for key3,each3 in vs3.items():
            for key4,each4 in vs4.items():
#             print(count,key1,key2,key3,each1*each2*each3)
            
                prob = 99.13 / (each1*each2*each3*each4)
                #print(count,key1,key2,key3,key4,prob)
                probList.append(prob)
                probListIndex.append(count)
                probVs.append(key1+key2+key3+key4)
                timesList.append(each1*each2*each3*each4)
                vsCode1.append(key1)
                vsCode2.append(key2)
                vsCode3.append(key3)
                vsCode4.append(key4)

                count += 1

data = pd.DataFrame(probList,index = probListIndex,columns=["prob"])
data_temp = pd.DataFrame(probVs,index = probListIndex,columns=["vs"])
data_times = pd.DataFrame(timesList,index = probListIndex,columns=["times"])

data_vs1 = pd.DataFrame(vsCode1,index = probListIndex,columns=["vs1"])
data_vs2 = pd.DataFrame(vsCode2,index = probListIndex,columns=["vs2"])
data_vs3 = pd.DataFrame(vsCode3,index = probListIndex,columns=["vs3"])
data_vs4 = pd.DataFrame(vsCode4,index = probListIndex,columns=["vs4"])

# data = data.add(data_temp,fill_value=False)
data["vs"] = data_temp["vs"]
data["vs1"] = data_vs1["vs1"]
data["vs2"] = data_vs2["vs2"]
data["vs3"] = data_vs3["vs3"]
data["vs4"] = data_vs4["vs4"]

data["times"] = data_times["times"]
data = data.sort_values(by="prob",ascending=False)
data["total_prob"] = 0

sum_prob = 0
for each in data.index:
#     print(each)
    sum_prob += data["prob"].loc[each]
    data["total_prob"].loc[each] = sum_prob
    

3.2 修正概率

该段代码无实际含义,仅为修正由于采用估计抽水率计算所得的概率偏差

主要思路是采用数据标准化后并将数据映射到合理的区间,并对部分概率进行转换

total_prob_min = data["total_prob"].min()
data["total_prob"] = (data["total_prob"]-data["total_prob"].min())/(data["total_prob"].max()-data["total_prob"].min())*(100-total_prob_min)+total_prob_min
data["total_prob"].iloc[0] = (data["total_prob"].iloc[1]*data["total_prob"].iloc[0])/(data["prob"].iloc[1]+data["total_prob"].iloc[0])

temp = data["total_prob"] - data["total_prob"].shift(1)
temp[0] = data["total_prob"].iloc[0]
data["prob"] = temp
data["prob"].iloc[0] = data["total_prob"].iloc[0]
data.to_csv(r"C:\Users\kkkk\Desktop\世界杯1129.csv")

四、输出结果

prob该组合可能性,total_prob为累计可能性,times为赔率,VS1~4为该组合对应的胜平负

 以11.29日赛程为参考,卡塔尔与威尔士大概率负,因此采用Excel筛选出相关组合,在所列组合中选取赔率较高的组合。

五、代码

import pandas as pd
import numpy as np

vs1 = {"胜":2.38,"平":2.93,"负":2.65}
vs2 = {"胜":13.0,"平":6.20,"负":1.11}
vs3 = {"胜":3.58,"平":3.16,"负":1.84}
vs4 = {"胜":7.35,"平":4.16,"负":1.31}

count = 1
probList = []
probListIndex = []
probVs = []
timesList = []

vsCode1 = []
vsCode2 = []
vsCode3 = []
vsCode4 = []

for key1,each1 in vs1.items():
    for key2,each2 in vs2.items():
        for key3,each3 in vs3.items():
            for key4,each4 in vs4.items():
#             print(count,key1,key2,key3,each1*each2*each3)
            
                prob = 99.13 / (each1*each2*each3*each4)
                print(count,key1,key2,key3,key4,prob)
                probList.append(prob)
                probListIndex.append(count)
                probVs.append(key1+key2+key3+key4)
                timesList.append(each1*each2*each3*each4)
                vsCode1.append(key1)
                vsCode2.append(key2)
                vsCode3.append(key3)
                vsCode4.append(key4)

                count += 1

data = pd.DataFrame(probList,index = probListIndex,columns=["prob"])
data_temp = pd.DataFrame(probVs,index = probListIndex,columns=["vs"])
data_times = pd.DataFrame(timesList,index = probListIndex,columns=["times"])

data_vs1 = pd.DataFrame(vsCode1,index = probListIndex,columns=["vs1"])
data_vs2 = pd.DataFrame(vsCode2,index = probListIndex,columns=["vs2"])
data_vs3 = pd.DataFrame(vsCode3,index = probListIndex,columns=["vs3"])
data_vs4 = pd.DataFrame(vsCode4,index = probListIndex,columns=["vs4"])

# data = data.add(data_temp,fill_value=False)
data["vs"] = data_temp["vs"]
data["vs1"] = data_vs1["vs1"]
data["vs2"] = data_vs2["vs2"]
data["vs3"] = data_vs3["vs3"]
data["vs4"] = data_vs4["vs4"]

data["times"] = data_times["times"]
data = data.sort_values(by="prob",ascending=False)
data["total_prob"] = 0

sum_prob = 0
for each in data.index:
#     print(each)
    sum_prob += data["prob"].loc[each]
    data["total_prob"].loc[each] = sum_prob
    
total_prob_min = data["total_prob"].min()
data["total_prob"] = (data["total_prob"]-data["total_prob"].min())/(data["total_prob"].max()-data["total_prob"].min())*(100-total_prob_min)+total_prob_min
data["total_prob"].iloc[0] = (data["total_prob"].iloc[1]*data["total_prob"].iloc[0])/(data["prob"].iloc[1]+data["total_prob"].iloc[0])

temp = data["total_prob"] - data["total_prob"].shift(1)
temp[0] = data["total_prob"].iloc[0]
data["prob"] = temp
data["prob"].iloc[0] = data["total_prob"].iloc[0]

data.to_csv(r"C:\Users\kkkk\Desktop\世界杯1129.csv")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/47110.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Web3中文|区块链游戏的成长之痛

来源 | cointelegraph 编译 | DaliiNFTnews.com 在过去十年中,手机游戏已成为互动娱乐产业的重要支柱,得益于智能手机的普及,来自世界各地的用户都成为了硬核游戏玩家。 现在,区块链技术的出现正在推动一种范式的转变&#xff…

基于SSM的在线书城网站【附源码】

一、项目功能 1.前台功能 图书基本展示,包括推荐图书展示和类图书类型展示.推荐图书包括条幅推荐,热销推荐和新品推荐.按照图书类型展示商品.图书详细信息展示.图书加入购物车.修改购物车内图书信息,例如数量等.用户登录.用户注册.修改个人信息,包括密码和收获信息.购物车付款…

环状序列(逐行解析)(保姆式解析)(算法竞赛入门经典二)

环状序列长度为n的环状串有n种表示法&#xff0c;分别为某个位置开始顺时针得到。例如&#xff0c;图中的环状串有10种表示&#xff1a; CGAGTCAGCT,GAGTCAGCTC,AGTCAGCTCG等。在这些表示法中&#xff0c;字典序最小的称为“最小表示”。 输入一个长度为n(n<100)的环状DNA串…

leetcode 526. 优美的排列(回溯)

题目链接&#xff1a;526. 优美的排列 回溯 树型结构: 预处理 matchmatchmatch 数组&#xff08;每个位置符合条件的数有哪些&#xff09;&#xff1a; void getMatch(int n) {used.resize(n 1);match.resize(n 1);for (int i 1; i < n; i) {for (int j 1; j < n…

供应双功能螯合剂THP-Mal,THP 马来酰亚胺,CAS:1314929-99-1

一&#xff1a;产品描述 1、名称 THP-Mal THP Maleimide THP 马来酰亚胺 2、CAS编号&#xff1a;1314929-99-1 3、分子式&#xff1a;C44H57N9O13 4、分子量&#xff1a;919.41 5、外观&#xff1a;白色或者灰白色粉末 6、沸点&#xff1a;1389.365.0 C(Predicted) …

内网穿透无法访问本地wordpress网站

解决办法:在wordpress主目录下修改wp-config.php文件 增加2行代码。 define(WP_SITEURL, http:// . $_SERVER[HTTP_HOST]); define(WP_HOME, http:// . $_SERVER[HTTP_HOST]); 增加2代码的意思&#xff1a;设置网站域名为当前访问的域名&#xff0c;也就是取消了域名的绑定。…

Linux下 生成coredump文件前配置

一. Linux下coredump文件 在 Linux 系统下&#xff0c;存在一种 coredump机制。 Linux 系统下&#xff0c;在进行 C/C 开发时&#xff0c;经常会遇到程序运行突然崩溃的问题。这时可以通过离线调试即 coredump 方式进行 bug 的定位。 具体为当程序出现段错误时&#xff0c;内…

用匠心创造可期未来!与广州流辰信息科技一起携手创佳绩!

当今社会世界经济一体化趋势逐渐明朗化&#xff0c;竞争也愈发激烈&#xff0c;同时&#xff0c;这也是一个机遇与挑战并存的开放社会。在机遇面前&#xff0c;作为企业&#xff0c;要紧紧抓住机遇&#xff0c;顺势而为&#xff0c;创造辉煌佳绩&#xff1b;在挑战面前&#xf…

Hostlink读写寄存器报文分析

引言 Hostlink是欧姆龙PLC默认的串口上行通信协议&#xff0c;使用默认的通信协议可免除PLC端的配置工作&#xff0c;易于实现分工协作。下面以CP1E-E的PLC为例进行说明&#xff0c;CP系列的PLC规则都是一样的。 读离散量 请求报文 字节流 40 33 31 46 41 30 30 30 30 30 3…

[Jetson]在nvidia orin/xavier上快速配置深度学习环境(Tensorflow,Pytorch都可以参考)

本文章将介绍如何通过docker在边缘计算设备nvidia orin/xavier上快速配置深度学习环境.该方法适用于Tensorflow,Pytorch,但是本文以介绍Tensorflow的安装为主. 文章目录第一步:安装docker第二步:安装nvidia-docker2第三步:拉取tensorflow镜像3.1 确定容器版本3.2 拉取镜像3.3 测…

awk命令应用

记录&#xff1a;353 场景&#xff1a;在CentOS 7.9操作系统上&#xff0c;使用awk文本处理工具处理文本&#xff1b;使用awk、cat和grep搭配使用处理文本&#xff1b;使用awk直接处理文本&#xff1b;使用shell脚本调用awk脚本处理文本。 版本&#xff1a; 操作系统&#x…

基于神经网络彩色图像插值研究-附Matlab程序

⭕⭕ 目 录 ⭕⭕✳️ 一、引言✳️ 二、色彩过滤阵列CFA✳️ 三、BP网络结构✳️ 四、神经网络彩色图像插值实验验证✳️ 五、参考文献✳️ 六、Matlab程序获取与验证✳️ 一、引言 彩色图像插值是通过估算相邻像素来估计缺失的颜色分量的过程&#xff0c;数字相机通过色彩过滤…

若依对SpringSecurity框架的运用

引言&#xff1a;借助ruoyi-vue框架学习其对SpringSecurity框架的运用。若依的前后端分离版本基于SpringSecurity和JWT配合Redis来做用户状态记录. 1 SpringSecurity 1.1 入口 后台接收登录数据&#xff0c;基于用户名和密码封装一个(UsernamePasswordAuthenticationToken)认…

线程安全和synchronized关键字

一&#xff0c;线程安全的引入 1.示例 多线程在多进程的基础上更好解决了并发问题&#xff0c;但由于一个进程内的多个线程是资源共享的&#xff0c;就会出现多个线程在并发执行的时候造成内存中数据的混乱。 举一个例子&#xff1a; class Counter {public int count;publi…

hypervision理解的记录

目录 一、hypervision介绍 Type 1 Hypervisor Type 2 Hypervisor 二、QNX hypervision是TYPE1的虚拟机 三、QNX hypervision架构 1、VMM (虚拟机管理器) 2、virtual-net 3、qnx官网 network 九、其他 一、hypervision介绍 首先&#xff0c;hypervision分为Type1和Type2…

SpringBoot添加外部jar包及打包(亲测有效) - 第452篇

历史文章&#xff08;文章累计450&#xff09; 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 深入Feign源码吃透Spring扩展点「扩展点…

亿级异构任务调度框架设计与实践

背景 阿里云日志服务作为云原生可观测与分析平台。提供了一站式的数据采集、加工、查询分析、可视化、告警、消费与投递等功能。全面提升用户的研发、运维、运营、安全场景的数字化能力。 日志服务平台作为可观测性平台提供了数据导入、数据加工、聚集加工、告警、智能巡检、…

“200万天价床垫”引发的思考:普通床垫越卖越贵是推测还是事实

定制床垫价格高达200万元&#xff1f;近段时间&#xff0c;一场娱乐圈的闹剧让大家把目光转向了床垫市场。在天价床垫的话题下&#xff0c;除了大部分猜测床垫品牌的讨论以外&#xff0c;也有不少人认为指出了“社会现状”&#xff1a;健康品质化的消费追求正在让市面上的床垫价…

Python_数据容器_字典

一、字典&#xff08;映射&#xff09;的定义 生活中的字典&#xff1a; 【字】&#xff1a;【含义】 可以按【字】找出对应的【含义】 Python中的字典&#xff1a; key : value 可以按照[key]找出对应的[value] 1、Python字典使用场景&#xff1a; 通过使用字典&#…

uni-app 之 web-view 与h5 通讯

官网文档&#xff1a;https://uniapp.dcloud.net.cn/component/web-view.html#getenv web-view 是一个 web 浏览器组件&#xff0c;可以用来承载网页的容器&#xff0c;会自动铺满整个页面&#xff08;nvue 使用需要手动指定宽高&#xff09;。 各小程序平台&#xff0c;web-v…