01 使用LSTM模型预测双色球,中大奖指日可待!

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,100CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 01 使用LSTM模型预测双色球,中大奖指日可待!

背景

上班空闲之余,同事们经常去买买彩票乐呵乐呵,希望中了头等奖就可以走上人生巅峰,哈哈哈!


今天我们用「LSTM预测模型」对双色球进行预测,用我们选出来的号码,看看能不能中奖!!!


技术

  • Python
  • Tensorflow
  • LSTM预测模型

LSTM非常适用于基于时序数据的预测,比如预测未来的股票行情,预测未来某个时间段的交通情况,预测未来的房价等。

需求分析

如下为某双色球发布站的页面,可以看到每期会产生红/蓝两种颜色的数字,其中红球为 33 选 6,蓝球为 16 选 1,一共是从 49 个球中选 7 个。假如想对某一色号球下注,比如红1 球,要先分析一下该球以往的产出情况。

网址:http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html


数据爬取

LSTM预测模型需要海量的数据集做为支撑,所以我们首先去爬取双色球,历年中奖的号码!

话不多说,贴代码!!!

import re
import urllib.request
import urllib
import requests
from bs4 import BeautifulSoup
#获取该网页的源代码
def getPage(url):
    try:
        user_agent = 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36'
        header = {'User-Agent': user_agent}
        request = urllib.request.Request(url,headers=header)
        response = urllib.request.urlopen(request)
        pageCode = response.read().decode('utf-8')
        return pageCode
    except Exception as e:
        print('Get Page Fail')
        print("An error has occurred:"+e)
#将双色球的信息写入txt文件
def writePage(date,dateNum,num):
    #日期的列表会比期号长1,因为最后加入了一组页数统计,所以不能以日期列表长度来写数据
    with open('./DCnumber.txt','a+') as f:
        for x in range(0,len(num)):
            f.write('('+date[x]+';'+dateNum[x]+';'+num[x]+')'+'\n')
#获取总页数
def getPageNum(url):
    try:
        pageCode = getPage(url)
        soup = BeautifulSoup(pageCode,'lxml')
        td_code = soup.find('td',colspan='7')       #获取表格中包含页数的列
        result = td_code.get_text().split(' ')      #将该列转换成列表,我们
        #result = ['\n', '共125', '页', '/2484', '条记录', '首页', '上一页', '下一页', '末页', '当前第', '2', '页']
        #用正则表达式从reslut[1]中提取出数字
        list_num = re.findall("[0-9]{1}",result[1])
        #将提取出来的数字转换成十进制的数值
        page_num = int(list_num[0]+list_num[1]+list_num[2])
        return page_num
    except Exception as e:
        print('Get Page Number Fail')
        print("An error has occurred:" + e)
#获取单页中的双色球中奖信息
def getDC(url):
    #循环读取每一页的信息
    for num in range(1,getPageNum(url)+1):
        print('begin get page:'+str(num))
        href = 'http://kaijiang.zhcw.com/zhcw/html/ssq/list_'+str(num)+'.html'
        page = BeautifulSoup(getPage(href),'lxml')
        em_list = page.find_all('em')   #获取该页面中的em内容,即中奖编号所在
        td_list = page.find_all('td',{'align':'center'})    #获取该页面中的开奖日期,期号等信息
        i = 1   #计数器,每七个号码为一组
        DCnum = ''      #存放一期中奖号码
        DCnum_list = []     #存放该页每期的中奖号码
        for em in em_list:
            emnum = em.get_text()
            if i == 7:
                DCnum = DCnum + emnum
                DCnum_list.append(DCnum)
                DCnum = ''          #重置一期的号码
                i = 1               #重置计数器
            else:
                DCnum = DCnum + emnum +','
                i += 1
        DCdate = []         #存放开奖日期
        DCdateN = []        #存放期号
        t = 1              #计数器,每5个为一组,我们只需要每组的前两个td内容
        for td in td_list:
            td_text = td.get_text()
            if t == 1:
                DCdate.append(td_text)
                t += 1
            elif t == 2:
                DCdateN.append(td_text)
                t += 1
            elif t == 5:
                t = 1
            else:
                t+=1
        writePage(DCdate,DCdateN,DCnum_list)
if __name__ == '__main__':
    getDC('http://url.html')

爬取【2003-02-23--->2021-08-19】一共18年的双色球中奖号码做为数据集!

模型训练

接下来我们利用「LSTM预测模型」进行模型训练,数据集训练耗时比较久,我们下篇文章再做详细的介绍!

总结

温馨提示:本文仅做数据处理技术讨论,不构成任何资金投入建议!

下集预告

  • LSTM模型训练
  • 双色球实战
相关文章
|
7月前
|
机器学习/深度学习 自然语言处理 数据处理
大模型开发:描述长短期记忆网络(LSTM)和它们在序列数据上的应用。
LSTM,一种RNN变体,设计用于解决RNN处理长期依赖的难题。其核心在于门控机制(输入、遗忘、输出门)和长期记忆单元(细胞状态),能有效捕捉序列数据的长期依赖,广泛应用于语言模型、机器翻译等领域。然而,LSTM也存在计算复杂度高、解释性差和数据依赖性强等问题,需要通过优化和增强策略来改进。
221 1
|
4月前
|
机器学习/深度学习 API 异构计算
7.1.3.2、使用飞桨实现基于LSTM的情感分析模型的网络定义
该文章详细介绍了如何使用飞桨框架实现基于LSTM的情感分析模型,包括网络定义、模型训练、评估和预测的完整流程,并提供了相应的代码实现。
|
4月前
|
机器学习/深度学习 自然语言处理 算法
7.1.3、使用飞桨实现基于LSTM的情感分析模型
该文章介绍了如何使用飞桨(PaddlePaddle)实现基于长短时记忆网络(LSTM)的情感分析模型,包括数据处理、网络定义、模型训练、评估和预测的详细步骤。
|
6月前
|
机器学习/深度学习 存储 人工智能
算法金 | LSTM 原作者带队,一个强大的算法模型杀回来了
**摘要:** 本文介绍了LSTM(长短期记忆网络)的发展背景和重要性,以及其创始人Sepp Hochreiter新推出的xLSTM。LSTM是为解决传统RNN长期依赖问题而设计的,广泛应用于NLP和时间序列预测。文章详细阐述了LSTM的基本概念、核心原理、实现方法和实际应用案例,包括文本生成和时间序列预测。此外,还讨论了LSTM与Transformer的竞争格局。最后,鼓励读者深入学习和探索AI领域。
68 7
算法金 | LSTM 原作者带队,一个强大的算法模型杀回来了
|
5月前
|
机器学习/深度学习 数据采集 数据挖掘
Python实现循环神经网络RNN-LSTM回归模型项目实战(股票价格预测)
Python实现循环神经网络RNN-LSTM回归模型项目实战(股票价格预测)
|
7月前
|
机器学习/深度学习 算法
【MATLAB】基于VMD-SSA-LSTM的回归预测模型
【MATLAB】基于VMD-SSA-LSTM的回归预测模型
241 4
|
7月前
|
机器学习/深度学习 算法
【MATLAB】基于EMD-PCA-LSTM的回归预测模型
【MATLAB】基于EMD-PCA-LSTM的回归预测模型
171 0
【MATLAB】基于EMD-PCA-LSTM的回归预测模型
|
6月前
|
机器学习/深度学习 自然语言处理 PyTorch
【自然语言处理NLP】Bert预训练模型、Bert上搭建CNN、LSTM模型的输入、输出详解
【自然语言处理NLP】Bert预训练模型、Bert上搭建CNN、LSTM模型的输入、输出详解
247 0
|
7月前
|
机器学习/深度学习 数据可视化 TensorFlow
【视频】LSTM模型原理及其进行股票收盘价的时间序列预测讲解|附数据代码1
【视频】LSTM模型原理及其进行股票收盘价的时间序列预测讲解|附数据代码
|
7月前
|
机器学习/深度学习 数据处理 计算机视觉
Python中利用长短期记忆模型LSTM进行时间序列预测分析 - 预测电力消耗数据
Python中利用长短期记忆模型LSTM进行时间序列预测分析 - 预测电力消耗数据

热门文章

最新文章