首页 > 其他分享 >神经网络(RNN)预测走地角球数以及角球玩法计算公式

神经网络(RNN)预测走地角球数以及角球玩法计算公式

时间:2024-08-13 16:51:44浏览次数:14  
标签:走地 RNN 1.2 odds 玩法 replace result 角球

文章目录


前言

其实足球玩法很多,比如大小球、让球、半场、角球、胜平负、总进球数等等,只要你能想到的玩法,都可以玩,这里浅析足球角球的玩法,以及如果如何计算输赢。


一、角球的基本玩法与规则?

1.1 角球的判罚

1.1.1 角球的判罚球的整体越过球门线

球的整体,不论是在地面还是空中,必须越过球门线。如果仅仅是球的一部分越过球门线,则不会判罚角球。

1.1.2 最后触球者为守方队员

 在球越过球门线之前,最后触球的球员必须是防守方(即非进攻方)的队员。

1.2 角球执行流程

1.2.1 犯规行为

如果在球出底线前有犯规行为发生,裁判员需要先处理犯规行为,然后再考虑是否判罚角球。如果犯规行为足以影响比赛结果或球员安全,裁判员可能会直接判罚其他类型的犯规(如点球、任意球等),而非角球。

1.2.2 角球执行方式:

判罚角球后,进攻方球员需在角球弧内(通常位于足球场底线和边线的交叉点处,半径为1米)将球开出。角球开出前,防守方球员必须退到距角球区一定距离(通常为9.15米或10码)之外。

1.2.3 直接得分:

角球是可以直接射门得分的,尽管由于角度和距离的限制,直接得分的难度较大。历史上曾有球员(如贝克汉姆)通过角球直接射门得分的情况。

1.3 角球玩法

这里主要介绍角球大小球的玩法。
最主要还是得根据比赛开的阈值(pankou)来决定

了解规则: 首先,你需要明确角球大小球的定义。一般来说,“大”角球意味着比赛中角球的数量超过预设的阈值,而“小”角球则意味着角球数量未达到该阈值。这个阈值会根据不同的比赛和投注平台而有所不同。
分析比赛: 在投注前,你需要对比赛进行分析。考虑双方球队的实力、战术风格、球员状态以及过往比赛中的角球数据。这些因素都可能影响比赛中角球的数量。
做出判断: 基于你的分析,判断比赛中角球数量可能会超过还是低于预设的阈值。如果你认为角球数量会较多,可以选择“大”角球;如果认为角球数量会较少,可以选择“小”角球。

二、角球计算公式

1.示例一【全赢】

在这里插入图片描述
计算公式

如这场荷甲的阿贾克斯VS海伦芬,开的盘口是7.5,这里觉得全场角球书不可能超过这个值,所以就推出是全场角球小球,反之,如果觉得大于这个值,那么就是全场角球大球,最终结果是5-2,也就是主队有5个角球,客队有2个角球,总数7个角球小于7.5,那么就是全赢。

2.示例二【走水】

在这里插入图片描述
计算说明

比如这场瑞士超中塞尔维特VS巴塞尔,开出来的盘口是16,结果是主队11个角球,客队5个角球,加起来刚好等于16,所以这场就是不赚不亏,本金退回。

3.示例三【全输】

在这里插入图片描述
计算说明

比如这场阿乙联赛中,埃斯卡拉达VS查卡里塔青年,开出8.5的盘口,最终是9个盘口,期望的是小球(小于),所以就全输。

4.盘口转换

有些盘口是有5.5/6,需要转换的可以参考以下这个方法。

    def change_pk(self, odds):
        # print('初始odds', odds)
        self.logger.info('初始odds' + odds + '类型:' + self.byName)
        byName = self.byName.replace('上半场-', '')
        result = 0.00
        if '大/小' in byName:
            odds = odds.replace('+', '').replace('-', '').replace('+', '').replace('-', '').replace('+', '').replace(
                '-', '')
            result = odds.replace('(', '').replace(')', '').replace(',', '/')
        if byName == '让球':
            odds = odds.replace('(', '').replace(')', '').replace(',', '/')
            result = odds
            if '/' in odds:
                odds = odds.split('/')[1]
                if '-' in odds:
                    result = float(odds) + 0.25  # -1 + 0.25
                if '+' in odds:
                    result = float(odds) - 0.25  # 3-0.25
                    result = '+' + str(result)
                if '0' == str(result):
                    result = str(result).replace('+', '').replace('-', '')
        self.logger.info('转换后odds' + str(result))
        if str(result) == '0.0':
            result = 0
        return str(result)

3. 大模型推到角球数

这里采用循环神经网络(RNN)
技术栈:Python的TensorFlow和Keras库

3.1 数据收集

需要一个包含足球比赛数据的数据集,至少包含每场比赛的角球数以及可能影响角球数的其他特征(如球队实力、天气、球场类型等)。这里我们假设数据已经以CSV格式存在,并且包含每场比赛的ID、两支球队、比赛结果(包括角球数)等信息。

3.2 数据预处理

1. 加载数据。

2. 清洗和预处理数据(如处理缺失值、编码分类变量等)。

3. 将数据转换为RNN可以处理的格式(通常是序列形式)。

3.3 模型设计

3.4 训练模型

3.5 预测

3.6 代码实现

import numpy as np  
import pandas as pd  
from tensorflow.keras.models import Sequential  
from tensorflow.keras.layers import LSTM, Dense, TimeDistributed  
from sklearn.model_selection import train_test_split  
from sklearn.preprocessing import StandardScaler  
  
# 假设数据已经加载到DataFrame中  
# data = pd.read_csv('football_matches.csv')  
  
# 假设数据预处理已经完成,并转换为X_train, y_train, X_test, y_test  
# 这里我们模拟一些数据  
np.random.seed(0)  
X_train = np.random.random((100, 10, 5))  # 100个样本,每个样本10个时间步,每个时间步5个特征  
y_train = np.random.randint(0, 10, (100, 1))  # 假设角球数在0到9之间  
  
# 构建模型  
model = Sequential([  
    LSTM(50, return_sequences=False, input_shape=(10, 5)),  
    Dense(1)  
])  
  
model.compile(optimizer='adam', loss='mean_squared_error')  
  
# 训练模型  
model.fit(X_train, y_train, epochs=10, batch_size=32)  
  
# 预测(假设X_new是新数据)  
X_new = np.random.random((1, 10, 5))  
predictions = model.predict(X_new)  
print("Predicted corner kicks:", predictions.flatten()[0])

总结

角球玩法还是比较简单,但是想赢还是的下一番功夫,比如从多个维度去考虑,危险进攻数、射正数、射门数、控球率、失球率等等,所以依靠AI加持,动态分析滚球数据,方能在瞬息万变的比赛,找到最合适的机会。

最后:纯粹个人爱好,切勿乱来!!!!

标签:走地,RNN,1.2,odds,玩法,replace,result,角球
From: https://blog.csdn.net/qq_38880880/article/details/141159683

相关文章

  • dbnet crnn java中文ocr识别
    TableofContentsAboutGettingStartedResultContactAbout完整项目:https://github.com/jiangnanboy/dbnet_crnn_java本项目利用java,javacv,onnx以及djl矩阵计算等技术加载文本检测模型dbnet与文本识别模型crnn,完成ocr的识别推理。包含模型的完整项目请从右侧relea......
  • 深度学习(RNN+VAE):高质量的音乐作品让音符飞舞起来
    深度学习在音乐生成领域有着广泛的应用,其中循环神经网络(RNN)和变分自编码器(VAE)是两种重要的模型。下面是这两种模型在音乐生成中的应用概述:1.循环神经网络(RNN)在音乐生成中的应用:序列建模:RNN特别适合处理序列数据,如音乐作品中的音符序列。它可以捕捉音乐中的时序依赖性,生成连......
  • 【足球走地软件】走地数据分析预测【大模型篇】走地预测软件实战分享
    了解什么是走地数据?走地数据分析,在足球赛事的上下文中,是一种针对正在进行中的比赛进行实时数据分析的方法。这种方法主要用于预测比赛中的某些结果或趋势,如总进球数、比分变化、球队表现等。在足球走地数据分析中,大小球策略是一种非常实用的投注方式。它主要预测的是一场......
  • 3.5-RNN文本生成
    1语言模型生成文本的顺序前面我们已经能够实现使用下图的LSTM网络进行语言建模;对于一个已经在语料库上学习好的LSTM模型;如果语料库就只是yousaygoobyeandisayhello;那么当把单词i输入到模型中,Timexxx层的第一个LSTM层将会输出一个概率分布,这个概率分布中概率最大......
  • 大模型基础——循环神经网络(RNN)
    循环神经网络(RecurrentNeuralNetwork,RNN)是一种特殊类型的神经网络,它特别适合于处理和预测序列数据中的时间依赖性和时序信息。与传统的前馈神经网络(FeedforwardNeuralNetwork)不同,RNN在隐藏层之间的节点是连接的,从而能够保存和传递之前时间步的信息给当前时间步。循环神......
  • RNN、LSTM
    RNN简化后网络结构LSTM引入长期记忆链c同时保持短期记忆链s和长期记忆链c,相互更新与论文图的对应......
  • 使用 RNN 生成 PyTorch 路径 - 与输入、输出、隐藏和批量大小混淆
    我遵循了关于使用RNN生成句子的教程,并且尝试修改它以生成位置序列,但是我在定义正确的模型参数(例如input_size、output_size、hidden_​​dim、batch_size)时遇到了麻烦。背景:我有596个x,y位置序列,每个序列看起来像[[x1,y1],[x2,y2],...,[xn,yn]]。每个序列代表车......
  • 为什么我的 RNN 无法收敛到简单任务?
    我想创建一个递归模型来解决我所知道的最简单的序列,即算术级数。以a作为基础,d作为步长,序列如下:a,a+d,a+2d,a+3d,a+4d,...为了解决这个问题,将隐藏状态表示为h,模型必须学习一个简单的2*2矩阵。这其实就是设置h1=t0.......
  • RNN 中未找到 rnn_utils 模块
    我需要使用这个库来构建我的模型,但是当我遇到此错误时。fromrnn_utilsimport*没有名为“rnn_utils”的模块遇到错误“ModuleNotFoundError:Nomodulenamed'rnn_utils'”是因为Python中没有内置的模块叫做“rnn_utils”。该模块不是标准Python库的一部分,也不......
  • 如何保存这个 RNN 模型以及如何使用它来构建 api 进行翻译?
    我使用僧伽罗英语数据集并训练它来翻译僧伽罗英语java相关问题。它提供了良好的训练准确性,但问题是保存后无法加载并使用它来开发翻译API。我将此模型保存为h5格式并尝试加载它给出importosimportshutilimportsubprocessimportwarningsfrompathlibimportPathim......