• Stars
    star
    269
  • Rank 152,662 (Top 4 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 7 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

该项目用于预测双色球。(This project is dedicated to forecasting the result of welfare lottery named Union Lotto in China.)

利用神经网络和LSTM预测双色球(How To predict the China's Union Lotto with Neural Network and LSTM)

2020/12/4更新

因为问的人比较多了,所以提供了适配'tensorflow 2.X'版本的分支.

2019/6/18更新

利用最近几次的双色球结果和奖池情况做预测,训练和测试见ssq4all_v4.pyssq4all_test_v4.py

2018/9/16更新

添加了大乐透的训练测试文件。

2018/5/30更新

根据反馈,修复了一些错误,删除了两个文件。另外,有问题请直接开issue。

2018/3/29更新

尝试用CNN和LSTM做预测。CNN用于提取特征,采用的是resnet。目前最好的结果是五等奖(中4个红号)。

背景(Background)


这个项目是通过结合神经网络和Long Short-Term Memory(LSTM)完成双色球预测。关于双色球的介绍,在此处不在赘述(参见网站)。该项目以真实的双色球开奖结果作为输入(7个数值,其中前6个表示红号,最后一个表示蓝号),输出预测结果(输出仍为7个数值,其中前6个表示红号,最后一个表示蓝号)。目前该项目还处于开发中。

其中,项目核心代码主要借鉴了这个网站 。 截至目前,该项目充分训练后的预测结果中,正确预测的红号数目为0-2个(1个的居多,但鉴于这概率本身就偏高,因此不能算是取得很好的结果),正确预测的蓝号数目为0-1个(0个的居多),考虑到双色球的中奖条件(至少3红号正确或者至少蓝号正确),不建议各位直接根据预测结果去买
预测结果不好有以下几个原因:

  1. 双色球本身是一个随机事件,而我却希望从中找到规律;
  2. 数据集样本数量不够多且无法有效扩大数据集;
  3. 可能我的模型还不够优秀。

如果您有什么好的建议或者有什么问题,请直接发我邮箱([email protected])或者在issue留言也可以;
如果您觉得这项目似乎还有点意思,记得STAR;
当然,如果您真的中奖了,要求不高, STAR。

项目依赖(Requirement)


1.Tensorflow;
2.pyexcel_xls;
3.CUDA.(optional)
该项目的代码可能还需要一些python包但我没列出来,请自行pip一下。

项目文件(File contents)


1. poems : poems文件夹包含3个模型文件,其中model.py是本项目所使用的模型文件;其中resnet.py定义的是resnet模型;
2.ssq.py : 该文件用于训练双色球模型;
3.ssq.xls : 该文件储存了历次双色球的开奖和中奖数据,需要利用宏进行数据更新;
4.ssq_data.py : 读取ssq.xls文件中的数据并变成所需要的形式.
5.ssq_test.py: 以最近一次的双色球开奖结果作为输入,输出模型产生的预测结果;
6.ssq4all.py : 该文件用于训练双色球模型(和ssq.py 功能一样,但用的模型不一样);
7.ssq4all_test.py: 以最近一次的双色球开奖结果作为输入,输出模型产生的预测结果;
6.dlt.xls : 该文件储存了历次双色球的开奖和中奖数据,需要利用宏进行数据更新;
7.dlt4all.py : 该文件用于训练大乐透模型;
8.dlt4all_test.py: 以最近一次的大乐透开奖结果作为输入,输出模型产生的预测结果;

训练及测试(How To Use)


设置好参数,运行ssq.py(建议在控制台运行,这样训练到一半可以直接通过按CTRL+C取消训练并保存结果;这样下次训练时可以从上一次的checkpoint继续训练)。训练后,项目目录下会生成一个model文件夹用于保存模型。然后运行ssq_test.py进行预测就可以了。
该项目在W10, tensorflow 1.4/1.5正常运行。有无GPU均可运行。原则上讲,这项目的模型并不大,且数据量也不大,所以可以直接将所有训练数据作为一个batch进行训练,后续如果需要加深模型,可能要降低batch size。