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

目录

一、背景

二、数据输入

2.1 赔率示意图

2.2 字典保存数据

三、数据处理

3.1 计算各种组合可能性

3.2 修正概率

四、输出结果

五、代码


一、背景

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

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

需要的库:numpy与pandas

二、数据输入

2.1 赔率示意图

2.2 字典保存数据

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

import pandas as pd
import numpy as npvs1 = {"胜":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 += 1data = 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"] = 0sum_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 npvs1 = {"胜":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 += 1data = 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"] = 0sum_prob = 0
for each in data.index:
#     print(each)sum_prob += data["prob"].loc[each]data["total_prob"].loc[each] = sum_probtotal_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.rhkb.cn/news/32955.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2/26周日 今日竞彩前瞻推荐,精选5场稳胆推荐,比分预测

大家好,我是千雅,本人热爱足球多年,对比赛有个人的独特的分析和见解,放平心态,细细分析,跟从自己的看法,结合盘口的走向,才能有效的把握住每一场比赛的最终结果。以下是我个人的见解…

用代码预测一波欧冠8强对阵吧

欧冠8强已经出炉,不知道你支持的球队晋级了吗 这8支球队分别是比利亚雷亚尔、切尔西、马竞、本菲卡、拜仁、利物浦、曼城、皇马。这其中英超联赛和西甲联赛分别有3支球队晋级,德甲联赛和葡超联赛则分别有1支球队晋级!五大联赛中的意甲联赛和…

这届 AI 预测欧洲杯冠军,通通被打脸

持续了一个月的欧洲杯,终于落下帷幕。 北京时间 7 月 12 日(周一)凌晨,本届欧洲杯决赛中,意大利对阵英格兰。两队在 120 分钟时间里 1-1 战平,意大利在欧洲杯中通过点球大战以 3:2击败英格兰夺冠。 意大利上…

这10本书,带你了解 ChatGPT 的底层逻辑

文末赠书 文章来源:人民邮电出版社 自2022年11月30日发布以来,ChatGPT已经真正意义上地火爆全球:它在不到40天内就拥有了1000万用户,而Instagram足足用了355天;最近它的日活已经达到1000万,这意味着其用户已…

在线K歌场景下实时合唱方案选型分析

摘要 在线K歌软件的开发有许多技术难点,需考虑到音频录制和处理、实时音频传输和同步、音频压缩和解压缩、设备兼容性问题等技术难点外,此外,开发者还应关注音乐版权问题,确保开发的应用合规合法。 前言 前面写了几期关于直播 …

技术选型|K歌App中的实时合唱如何进行选型

摘要 在线K歌软件的开发有许多技术难点,需考虑到音频录制和处理、实时音频传输和同步、音频压缩和解压缩、设备兼容性问题等技术难点外,此外,开发者还应关注音乐版权问题,确保开发的应用合规合法。 前言 前面写了几期关于直播 …

【教你做直播产品】线上K歌软件开发技术选型

摘要 在线K歌软件的开发有许多技术难点,需考虑到音频录制和处理、实时音频传输和同步、音频压缩和解压缩、设备兼容性问题等技术难点外,此外,开发者还应关注音乐版权问题,确保开发的应用合规合法。 前言 前面写了几期关于直播 …

【转载】风控-风控策略逻辑

从现金贷平台方面来看,一是完善大数据体系和风控模型,放款给那些急需用钱的人,需要快速判断用户画像,需要很强的大数据和风控模型来做支撑。二是准确评估用户属性,产品定价回归理性。筛选出相对优质的客户群体&#xf…

金融风控之三方数据评测

1.采购三方数据一般有调研、测试评估、签约和对接四个流程 2.测试评估分为测试样本选取和数据可用性评估两个阶段 3.测试样本选取遵循风险释放性、样本代表性和横向可比性三个原则 4.从查得率、稳定性和有效性评估数据可用性 5.黑名单类数据评测指标有五个:查得率、…

全面了解风控数据体系

考察一个人的判断力,主要考察他信息来源的多样性。无数的可怜人,长期生活在单一的信息里,而且是一种完全被扭曲、颠倒的信息,这是导致人们愚昧且自信的最大原因。 ——阿玛蒂亚森(诺奖得主) 说明 传统金…

互联网金融风控模型

一、市场调研 目前市面主流的风控模型 1、互联网金融前10名排行榜(数据截止日期2017-09-12) 互联网金融公司排名分别是蚂蚁金服、陆金所、京东金融、苏宁金融、百度金融、腾讯理财通、宜信、钱大掌柜、万达金融和网易理财。 1.1 蚂蚁金服 1.1.1 大数据技术 对接第三方征…

金融风控-- >客户流失预警模型-- >GBDT建模

前几篇博文中,我们对金融数据进行了分析,数据预处理和特征工程。这篇博文将利用金融数据训练出一个GBDT模型。 本篇博文的主要内容分为以下三个部分: GBDT模型简介分类器性能指标GBDT在流失预警模型中的应用 GBDT模型简介 有关GBDT模型的…

金融风控实战——额度模型与风控策略

消费金融风控策略 变量分布的合理性:年龄为例,这期的用户大多集中在20-30之间,下一批用户年龄集中在30-40之间,导致变量分布不一致问题。机器学习模型都是基于独立同分布的假设的,会让模型失效,很多规则策略…

实时图计算如何进行风控决策管理?

在金融行业中,账户之间是复杂、多层的关系,那么,数据在高速地发生动态变化的时候,如何进行高效的关联关系计量,如欺诈判定、归因分析等——这种挑战就是典型的深数据或者图数据的挑战。 01 从数据角度看信用卡欺诈风险…

验证码在风控中的实际应用

前言:在业务场景中,企业的安全团队通常将验证码作为降低业务受损风险的方法,以减少撞库盗号、虚假注册、刷量作弊、信息盗窃、薅羊毛等风险事件发生的可能性。 今天将通过验证码在极验十周年特别活动的实际应用,探讨验证码在业务…

风控策略(下)

一、常用量化指标 首先,先了解下如何定义逾期。 过了最后还款日仍未还款,则为逾期。注意,一个客户只有一个账单日。如果想要获得最长免息还款期,则应该在上一个账单日的后一天进行消费。   还有,最重要的一点&#…

风控ML[10] | 风控建模中的自动分箱的方法有哪些

之前有位读者朋友说有空介绍一下自动分箱的方法,这个确实在我们实际建模过程前是需要解决的一个问题,简单来说就是把连续变量通过分箱的方式转换为类别变量。关于这个话题,我也借着这个主题来系统的梳理总结一下几点:为什么要分箱…

风控分析常用指标介绍

在信贷风控中,指标时反应业务变化最直观的手段,通过对指标的分析及时发现和定位业务开展过程中的问题,并及时采取相应的手段进行防控。本文列出工作中常关注的风险指标,介绍指标的定义及分析的方法,旨在精而不在全&…

全面了解风控策略体系

模型和策略的开发是一个系统工程,这其中需要有业务经验、统计理论、算法运用、和数据认知,是一个不断反思,不断积累经验的过程。沙滩上建不起摩天大楼。扎扎实实的基本功永远有价值,永远不会过时。 ——余旭鑫博士 说明 互联网…

金融风控实战——有监督分箱

卡方分箱 分箱的方法有很多,卡方分箱属于其中一种,属于有监督系列的。卡方分箱正是一种基于卡方检验的分箱方法,更具地说是基于上面提到的第二种应用,独立性检验,来实现核心分箱功能的。   卡方分箱算法简单来说&…