大数据分析预测超70%准确率,用数学方法买彩票也能中奖?

彩票,说白了是数字的游戏,主要用到的是概率学的知识,使用数据模型来预测彩票,是我们接下来要讲的!那么预测哪种彩票呢?我们先选择简单的,就是组合少一些的,如果推导出来的函数可行,再扩展到其他的彩票上。最终我选择了xx飞艇 从1-10的数字中选取5个数猜冠军,中奖概率就是二分之一,够简单了吧。

分析思路

1、导出某彩种的5000份历史开奖数据,形成数据集!

2、把收集到的数据导入到LSTM模型,实现生成50个预测函数!

3、把历史数据导入函数,找出准确率最高的几个函数,也就是所谓的计划!

4、使用准确率最高的函数去预测接下来的开奖号码!

一)导出历史数据5000份进行大数据分析

利用数学模型算法去推算彩票的号码是有很多人一直在研究的方向,这个国内某大平台上的新闻也曝光过(不是我瞎掰忽悠大家的),这里面涉及到概率学跟高等数学的知识,随着计算机技术跟大数据的发展,很多以前没法做的一些实验,现在依靠计算机都可以实现,技术总是一直在进步,毕竟现在是大数据的时代。

闲话不跟大家扯那么多了,要做数据模型就离不开大量历史数据来进行分析,今天我们研究某一个彩种XX飞艇来推导预测函数,我们先采集一下最新的往前5000条的历史数据,这个在某开奖网站上随便都可以拿的到,没有一点难度。

往期开奖结果的相似度分布

在训练不够充分的情况下,从往期开奖的相互之间的距离图可以看出,大部分的数据点相互之间的距离基本上都差不多,完全符合彩票随机的特性,出现任何一种结果的概率都是一样的。甚至上一期和下一期之间的距离也有可能间隔非常远,只有一部分数据点之间联系的比较紧密,这部分数据点我们还可以试试运气。(这部分看不懂的朋友直接拉到文章底部看结论吧)

二)数据导入到LSTM模型,实现生成50个预测函数!

我们可以把5个数组合成一组数,就像数据集中体现的那样,并且把一组数当作一个数或者说当作一个单词。这样在预处理数据集的时候会简单一些,从索引到单词(0 -> ‘000’)和从单词到索引(‘012’-> 12)其实都是同一个数。

网络的输入是每一期的开奖结果,总共有5000组数,用one hot编码是一个5000维的稀疏向量:

使用one hot稀疏向量在输入层与网络第一层做矩阵乘法时会很没有效率,因为向量里面大部分都是0, 矩阵乘法浪费了大量的计算,最终矩阵运算得出的结果是向量中值为1的列所对应的矩阵中的行向量。

这看起来很像用索引查表一样,one hot向量中值为1的位置作为下标,去索引参数矩阵中的行向量。

为了代替矩阵乘法,我们将参数矩阵当作一个查找表(lookup table)或者叫做嵌入矩阵(embedding matrix),将每组开奖数据所对应的数作为索引,比如“958”,对应索引就是958,然后在查找表中找第958行。

这其实跟替换之前的模型没有什么不同,嵌入矩阵就是参数矩阵,嵌入层仍然是隐层。查找表只是矩阵乘法的一种便捷方式,它会像参数矩阵一样被训练,是要学习的参数。

下面就是我们要构建的网络架构,从嵌入层输出的向量进入LSTM层进行时间序列的学习,然后经过softmax预测出下一期的开奖结果并生成1个预测函数。

实现生成预测函数

实现 pick_word() 函数从概率向量 probabilities或相似度向量sim中选择号码。

pred_mode是选择预测的种类:

sim:从相似度向量Top K中选号。

median:从浮动距离中位数(相似度向量)Range K中选号。

topk:从概率向量Top K中选号。

max:从概率向量中选择最大概率的号码。

三)测试准确率

开始进行预测了,我们先来预测10期,就是已经开过奖的10期,来看下这个函数的准确率。我们主要利用两个变量,生成期数的数量跟前一期的号码。来导入到模型中。

*gen_length 为你想生成多少期的号码。

*prime_word 是前一期号码。导出生成10期结果,10期中6期,中奖率60%,这样我们就生成了1个算法函数,中奖率还可以,接下来就是用同样算法去生成50个预测函数,对比每个函数的准确率!

四)预测最新一期开奖结果

准备率跟我预想的差不多,因为10个数选5个,平均准确率应该是50%,但是因为算法函数的差异,有些算法函数的准确率就会超过50%,最高有75%的。那当然也会有些算法函数比较“倒霉”,中奖率才20%。有够衰的。

我们把数据放大到30期,然后把准确率最高的【算法函数21】拿出来实操一下,是骡子是马拿出来溜溜~

实际操作一下,预测最新一期的结果是【02,03,05,07,10】

紧张等待开奖ing~

运气还不错,开了7号。同样的一个预测结果也可以用在不同的玩法,不同的彩种,方法都是一通百通~

 

结论

先从数据上说,推导出来的算法函数的准确率如下:一共50组数据,26组数据超过50%的准确率,24组算法函数是低于50%。50组数据总体的准确率稳定在50%左右,这也印证了数学的奇妙之处。都说了彩票是等概率,那么出任何一种号码都是有可能的。大数据分析也只是让我们推导出偏向准确率高的一种结果,排除掉一些准确率低的结果,这就好比去澳门赌场,总有人会鸿运当头,身后一群人跟风跟投,那肯定也就有一部分人买啥啥不中,从宏观概率学角度来说,假设100个人在赌场,是会有50个人赢钱,50个人输钱!所以是没有100%能包赢的算法计划,因为到下注操作中影响输赢的因素还有很多,比如人的心态,投注的本金等等!我就发现很多人玩彩票,赢的时候会越下越少,不相信自己运气会那么好,但是到输的时候就越下越大,一是想翻本,二是不相信自己运气那么背。毕竟人不是机器,下注的时候是带着情绪的,所以还是讲究的一个天时地利与人和!