深度学习算法应用——使用LSTM对双色球进行统计与预测

这篇具有很好参考价值的文章主要介绍了深度学习算法应用——使用LSTM对双色球进行统计与预测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

福彩双色球的玩法和规则是双色球投注区分为红色球号码区和蓝色球号码区,红色球号码从1-33,蓝色球号码是从1-16。投注方法是,从红色区选出6个不重复的号码再加上蓝色区的一个号组成一个投注组。双色球通过摇奖器确定中奖号码,摇奖时先摇出6个红色球号码,再摇出1个蓝色球号码。如果所选的七个号码与摇出的七个号相同,则是一等奖。
想对规则有更深的理解可以直接访问中国福利彩票官网。

一、概率

双色球的摇奖过程是从33个球里面先取出6个球和再从16个球里面取出一个球,取红球时它的计算过程是取第一个球有33种情况,当第一个球被取走后,到取第二个球有33-1种情况,一直到取第6个球的时候有33-6+1种情况。如果取出的球还要按排列顺序来组合的话,比如(1,2,3)和(3,2,1)在排列中是不一样,则计算公式如下:
深度学习算法应用——使用LSTM对双色球进行统计与预测
使用阶乘表示:
深度学习算法应用——使用LSTM对双色球进行统计与预测
但双色球并不考虑顺序的组合问题,则要把用排列计算得出的结果除以重复计算的次数,计算所有组的方式:
使用阶乘表示:
深度学习算法应用——使用LSTM对双色球进行统计与预测
那么双色球最终的计算是:
深度学习算法应用——使用LSTM对双色球进行统计与预测

•一等奖(6+1)中奖概率为:红球33选6乘以蓝球16选11/17721088=0.0000056%;
•二等奖(6+0)中奖概率为:红球33选6乘以蓝球16选0=15/17721088=0.0000846%;
•三等奖(5+1)中奖概率为:红球33选5乘以蓝球16选1=162/17721088=0.000914%;
•四等奖(5+0、4+1)中奖概率为:红球33选5乘以蓝球16选0=7695/17721088=0.0434%;
•五等奖(4+0、3+1)中奖概率为:红球33选4乘以蓝球16选0=137475/17721088=0.7758%;
•六等奖(2+1、1+1、0+1)中奖概率为:红球33选2乘以蓝球16选1=1043640/17721088=5.889%;

二、统计

双色球是2003年正式开售的,一年能开出150期左右,到2022年,差不多有3000期左右,统计这3000多期的开奖结果,是不是可以找到某些规律呢?这里把从第一级到最后的一期的所有数据都收集在一个表里面了,借助python就可以对中奖号码组进行统计。
数据的存放格式如下:
深度学习算法应用——使用LSTM对双色球进行统计与预测

1. 重叠计算

使用Python计算所有往期的中奖号码组出现的重叠次数,
对比两注数据的相同个数

def comparison_list(a,b):
    k = 0
    if len(a) == 6:
        for i in range(len(a)):
            for j in range(len(b)):
                if a[i] == b[j]:
                    k = k + 1

    elif len(a) == 7:
        for i in range(len(a)-1):
            for j in range(len(b)-1):
                if a[i] == b[j]:
                    k += 1
        if a[6] == b[6]:
            k += 1
    return k
# 只统计蓝球区的重复注数
def stat_blue_ball(data):
    blue = copy.deepcopy(data)
    indexs = []
    for i in range(len(blue)):
        blue[i].pop()

    for i in range(len(blue)-1):
        indexs.append(comparison_list(blue[i],blue[i+1]))

    b = [0 for _ in range(7)]

    for i in range(len(b)):
        b[i] = indexs.count(i)

    return b

# 统计整注的重复占比率
def stat_all_ball(list):
    indexs = []

    for i in range(len(list) - 1):
        indexs.append(comparison_list(list[i], list[i + 1]))

    all = [0 for _ in range(8)]

    for i in range(len(all)):
        all[i] = indexs.count(i)

    return all

深度学习算法应用——使用LSTM对双色球进行统计与预测
统计发现,这么多期开奖结果,有4个数重叠的只有26次,6个数重叠就只有一对,从来没有开出过与旧的中奖号一模一样的一组数,所以,如果选出来的这组数,与往期中的某期的开奖号码重叠的号码太多了,那么中奖的机率会大的降低。

2.统计每个号码出现的次数

统计显示,红球区27是出现最多的数字,33是出现最少的数字,但出现最多的数字与出现最少的数字并不相差很大。

def occurrences(list,name,colors):
    y_data = list
    x_data = []
    for i in range(len(y_data)-1):
        x_data.append(str(i+1))

    y_data.pop(0)
    fig, ax = plt.subplots(figsize=(13, 8))

    ax.bar(x=x_data, height=y_data, color=colors)

    for i in range(len(y_data)):
        plt.text(i, y_data[i], y_data[i],  ha='center', va= 'bottom')  # 显示y轴数据

    # 设置图片名称
    plt.title(name+'历届开奖号码统计')
    # 设置x轴标签名
    plt.xlabel(name)
    # 设置y轴标签名
    plt.ylabel("出现次数")
    plt.savefig(name + "统计图.png", dpi=300)
    # 显示
    # plt.show()

红球出现次数统计图:
深度学习算法应用——使用LSTM对双色球进行统计与预测
蓝球出现次数统计图:
深度学习算法应用——使用LSTM对双色球进行统计与预测

3.环比图

统计出现次数概率

def percentage(rad,name):
    data = rad
    pie_labels = []

    for i in range(len(data)):
        pie_labels.append(str(i+1))
    fig, ax = plt.subplots(figsize=(10, 10))
    ax.pie(data, radius=1.1, pctdistance=0.9,labels=pie_labels, wedgeprops=dict(width=0.3, edgecolor="w"),
            autopct='%1.1f%%')

    plt.title("单球出现次统计表")
    # 设置x轴标签名
    plt.xlabel(name)

    plt.savefig(name+"百分比图.png", dpi=300)
    # plt.show()

红球区
深度学习算法应用——使用LSTM对双色球进行统计与预测
蓝球区
深度学习算法应用——使用LSTM对双色球进行统计与预测

三、预测

有很多老彩民喜欢研究双色球的预测,而且还分了不同的预测流派,像黄金分割选号、尾数分布选号、相减排除等等方法,是于预测的结果如何,见仁见智了。一般老彩民的预测往往以年或月为单位,进行综合计算后,预测出下期可能开的号码组,但人脑的计算能力与所接受的数据广度是有限的,双色球是2003年正式开售的,到现在2022年大概开了3000多期,那么从以这3000多期为样本,是否能计算出中奖号码的规律?
在过去的10年里,机器学习解决了很多科研难题,那么使用用机器学习来预测双色球走向,是否能比老彩民做得更好,它是否能解决这种无规律数据的预测呢?这种无规律的数据要使用卷积神经网络,显然不是最好的解决方法,毕竟是无规律数据,那根本就是没有特征可以提取,这里只能选择使用长短期记忆(Long short-term memory, LSTM)记忆网络,毕竟是要从历史的数据中学习到可能存在的规律。

四、LSTM

长短期记忆网络(Long short-term memory, LSTM)是一种特殊的RNN模型,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题,相比普通的RNN,LSTM能够在更长的序列中有更好的表现。RNN(Recurrent Neural Network)是一种用于处理序列数据的神经网络。相比一般的神经网络来说,它能够处理序列变化的数据。比如某个单词的意思会因为上文提到的内容不同而有不同的含义,RNN就能够很好地解决这类问题。

1.RNN

Rnn网络结构
深度学习算法应用——使用LSTM对双色球进行统计与预测
x为当前状态下数据的输入, h表示接收到的上一个节点的输入。
y为当前节点状态下的输出, h`而为传递到下一个节点的输出。
从公式可以得到,输出 h’ 与 x 和 h 的值都相关。而 y 则常常使用 h’ 投入到一个线性层(主要是进行维度映射)然后使用softmax进行分类得到需要的数据。对这里的y如何通过 h’ 计算得到往往看具体模型的使用方式。通过序列形式的输入,就可以得到如下形式的RNN。
深度学习算法应用——使用LSTM对双色球进行统计与预测

2. LSTM网络结构

右边是LSTM,与左边RNN的比较:
深度学习算法应用——使用LSTM对双色球进行统计与预测
相比RNN只有一个传递状态 ht ,LSTM有两个传输状态,一个 ct(cell state),和一个 ht(hidden state)。RNN中的 ht等价于LSTM中的ct。其中对于传递下去的 改变得很慢,通常输出的 是上一个状态传过来的 加上一些数值。而ht则在不同节点下往往会有很大的区别。

未完待续文章来源地址https://www.toymoban.com/news/detail-495147.html

到了这里,关于深度学习算法应用——使用LSTM对双色球进行统计与预测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python爬虫】利用爬虫抓取双色球开奖号码,获取完整数据,简洁45行代码实现,更新时间2023-06-28

    链接:https://pan.baidu.com/s/18oE308_NVNPaCOACw_H5Hw?pwd=abc1  利用爬虫抓取双色球开奖号码,获取完整数据,简洁45行代码实现,更新时间2023-06-28 这是网上的数据,怎么将它爬取下来 它将只爬取最近30期的双色球开奖号码,并将结果写入到名为 \\\"双色球开奖结果.csv\\\" 的文件中。   生成

    2024年02月15日
    浏览(171)
  • 【算法小记】深度学习——循环神经网络相关原理与RNN、LSTM算法的使用

    文中程序以Tensorflow-2.6.0为例 部分概念包含笔者个人理解,如有遗漏或错误,欢迎评论或私信指正。 卷积神经网络在图像领域取得了良好的效果,卷积核凭借优秀的特征提取能力通过深层的卷积操作可是实现对矩形张量的复杂计算处理。但是生活中除了图像这样天然以矩阵形

    2024年01月25日
    浏览(54)
  • 深度学习--LSTM网络、使用方法、实战情感分类问题

    长短期记忆网络(Long Short-Term Memory,简称LSTM),是RNN的一种,为了解决RNN存在长期依赖问题而设计出来的。 LSTM的基本结构: LSTM与RNN的结构相比,在参数更新的过程中,增加了三个门,由左到右分别是遗忘门(也称记忆门)、输入门、输出门。 图片来源: https://www.elecfan

    2023年04月26日
    浏览(39)
  • 3易懂AI深度学习算法:长短期记忆网络(Long Short-Term Memory, LSTM)生成对抗网络 优化算法进化算法

    继续写:https://blog.csdn.net/chenhao0568/article/details/134920391?spm=1001.2014.3001.5502 1.https://blog.csdn.net/chenhao0568/article/details/134931993?spm=1001.2014.3001.5502 2.https://blog.csdn.net/chenhao0568/article/details/134932800?spm=1001.2014.3001.5502 长短期记忆网络(LSTM)是一种特殊的循环神经网络(RNN),主要用于处

    2024年02月04日
    浏览(48)
  • 【深度学习】——LSTM参数设置

    LSTM的批大小可以根据训练数据集的大小和计算资源的限制来确定。一般而言,批大小 越大 ,训练速度越快,但可能会 导致过拟合 和 内存限制 。批大小 越小 ,训练速度越慢,但对于 较大的数据集和内存限制较严格的情况下会更加稳定 。 在实践中,可以通过尝试不同的批

    2024年02月02日
    浏览(40)
  • 28. 深度学习进阶 - LSTM

    Hi, 你好。我是茶桁。 我们上一节课,用了一个示例来展示了一下我们为什么要用RNN神经网络,它和全连接的神经网络具体有什么区别。 这节课,我们就着上一节课的内容继续往后讲,没看过上节课的,建议回头去好好看看,特别是对代码的进程顺序好好的弄清楚。 全连接的

    2024年02月04日
    浏览(47)
  • 深度学习——LSTM解决分类问题

    循环神经网络(Recurrent Neural Network,RNN)是一种深度学习模型,主要用于处理序列数据,如文本、语音、时间序列等具有时序关系的数据。 RNN的关键思想是引入了循环结构,允许信息在网络内部进行传递。与传统的前馈神经网络(Feedforward Neural Network)不同,RNN在处理序列数

    2024年02月16日
    浏览(46)
  • MATLAB算法实战应用案例精讲-【深度学习】基于优化的元学习

    目录 元学习 1 元学习概念 2 元学习含义 3 元学习单位 4 基学习器和元学习器

    2024年02月11日
    浏览(50)
  • 深度学习 | DRNN、BRNN、LSTM、GRU

    1.1、基本思想          能捕捉数据中更复杂模式并更好地处理长期依赖关系。         深度分层模型比浅层模型更有效率。         Deep RNN比传统RNN表征能力更强。         那么该如何引入深层结构呢? 传统的RNN在每个时间步的迭代都可以分为三个部分:   

    2024年02月03日
    浏览(44)
  • 【动手学深度学习】--长短期记忆网络LSTM

    学习视频:长短期记忆网络(LSTM)【动手学深度学习v2】 官方笔记:长短期记忆网络(LSTM) 长期以来,隐变量模型存在着长期信息保存和短期输入缺失的问题,解决这一问题的最早方法之一是长短期存储器(LSTM),它有许多与GRU一样的属性,有趣的是,长短期记忆网络的设计

    2024年02月09日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包