我是靠谱客的博主 清爽冬瓜,最近开发中收集的这篇文章主要介绍tensorflow lstm 预测_基于LSTM的双色球预测(一)前言LSTM介绍安装前准备建立项目采集历史数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言

人工智能目前是越来越火了,而我们本次的主题就是通过人工智能技术来预测彩票,来提高我们的中奖概率;

大家知道,彩票数据是按照每期一组数的顺序排列的,从第一期到最新的一期,实际上是时间序列的数据。跟回归预测有很大的区别,因为特征上没有特殊的意义,不具备一组特征x映射到label y的条件。但是按照时间序列来训练的话就不一样了,输入x是一期的开奖结果,要学习的y是下一期的开奖结果。

0847a5b554a500b6ae16c206e428e8bb.png

LSTM介绍

既然我们需要通过过往的历史数据中寻找规律,那么LSTM再适合不过了。如果你对LSTM不熟悉的话,又希望进一步学习的话,以下几篇文章可以帮助你进一步学习:

  • 一文详解LSTM网络
  • 深度学习:人人都能看懂的LSTM
  • 多图|入门必看:万字长文带你轻松了解LSTM全貌

安装前准备

python 3.6Flask==1.1.1tensorflow==2.0.0 tensorflow-gpu==2.0.0requests==2.22.0bs4==0.0.1

其中TensorFlow和TensorFlow-GPU只需要安装其中一个即可,如果有较好的独立显卡,建议安装TensorFlow-gpu,如果只是笔记本集成显卡或者普通显卡,建议使用TensorFlow即可;

建立项目

在本地建立项目predict_Lottery_ticket-master,在里面新建两个文件夹data、model,分别用于存放历史数据和模型;整体项目结构如下

b072da243b84b0cc009be7fdf5fd0c7c.png

项目结构

采集历史数据

既然要训练模型,我们首先,先要收集数据,创建python文件get_train_data.py,内部代码如下:

# -*- coding:utf-8 -*-import requestsimport pandas as pdfrom bs4 import BeautifulSoupfrom config import *def get_current_number():    """ 获取最新一期数字    :return: int    """    r = requests.get("{}{}".format(URL, "history.shtml"))    r.encoding = "gb2312"    soup = BeautifulSoup(r.text, "lxml")    current_num = soup.find("div", class_="wrap_datachart").find("input", id="end")["value"]    return current_numdef spider(start, end, mode):    """ 爬取历史数据    :param start 开始一期    :param end 最近一期    :param mode 模式    :return:    """    url = "{}{}{}".format(URL, path.format(start), end)    r = requests.get(url=url)    r.encoding = "gb2312"    soup = BeautifulSoup(r.text, "lxml")    trs = soup.find("tbody", attrs={"id": "tdata"}).find_all("tr")    data = []    for tr in trs:        item = dict()        item[u"期数"]= tr.find_all("td")[0].get_text().strip()        item[u"红球号码_1"] = tr.find_all("td")[1].get_text().strip()        item[u"红球号码_2"] = tr.find_all("td")[2].get_text().strip()        item[u"红球号码_3"] = tr.find_all("td")[3].get_text().strip()        item[u"红球号码_4"] = tr.find_all("td")[4].get_text().strip()        item[u"红球号码_5"] = tr.find_all("td")[5].get_text().strip()        item[u"红球号码_6"] = tr.find_all("td")[6].get_text().strip()        item[u"蓝球"] = tr.find_all("td")[7].get_text().strip()        item[u"快乐星期天"] = tr.find_all("td")[8].get_text().strip()        item[u"奖池奖金(元)"] = tr.find_all("td")[9].get_text().strip()        item[u"一等奖_注数"] = tr.find_all("td")[10].get_text().strip()        item[u"一等奖_奖金(元)"] = tr.find_all("td")[11].get_text().strip()        item[u"二等奖_注数"] = tr.find_all("td")[12].get_text().strip()        item[u"二等奖_奖金(元)"] = tr.find_all("td")[13].get_text().strip()        item[u"总投注额(元)"] = tr.find_all("td")[14].get_text().strip()        item[u"开奖日期"] = tr.find_all("td")[15].get_text().strip()        data.append(item)    if mode == "train":        df = pd.DataFrame(data)        df.to_csv("data/data.csv", encoding="utf-8")    elif mode == "predict":        return pd.DataFrame(data)if __name__ == "__main__":    print("最新一期期号:{}".format(get_current_number()))    print("正在获取数据。。。")    spider(1, get_current_number(), "train")

运行后,会发现在data文件夹内多了一个data.csv,打开后会发现里面存放了历史的彩票数据,后续每次开奖后,运行此python文件,就可以收集最新一期的双色球数据了;

61db9ef4be29a8e8574aad1dd7424cc4.png

data内的双色球历史数据

大家有任何问题都可以进行评论,下一期,我们将重点讲述如何训练创建和训练模型;

最后

以上就是清爽冬瓜为你收集整理的tensorflow lstm 预测_基于LSTM的双色球预测(一)前言LSTM介绍安装前准备建立项目采集历史数据的全部内容,希望文章能够帮你解决tensorflow lstm 预测_基于LSTM的双色球预测(一)前言LSTM介绍安装前准备建立项目采集历史数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(93)

评论列表共有 0 条评论

立即
投稿
返回
顶部