双色球预测的一次尝试——修正



经过三次计算,发现计算结果相差不大,所以觉得预测算法不够完善,现在还不知道如何使用其他的方式来预测,所以只能计算每次预测的误差平均值,在预测的时候加上这个误差平均值,看看效果(PS:今天410日预测出来的1号球居然是0····所以才想着用误差平均值来修正)。

修改的Python代码如下:

#查询误差数据
cursor.execute('select * from tb_error')
errors = cursor.fetchall()

red1Error = 0
red2Error = 0
red3Error = 0
red4Error = 0
red5Error = 0
red6Error = 0
blueError = 0

#将每个球误差累加
for i in errors:
    print i[2:9]
    red1Error = red1Error + i[2]
    red2Error = red2Error + i[3]
    red3Error = red3Error + i[4]
    red4Error = red4Error + i[5]
    red5Error = red5Error + i[6]
    red6Error = red6Error + i[7]
    blueError = blueError + i[8]

#调用预测算法,然后加上对应球的误差平均值
pred1=int(prdct.prediction(red1)) + red1Error/len(errors)
pred2=int(prdct.prediction(red2)) + red2Error/len(errors)
pred3=int(prdct.prediction(red3)) + red3Error/len(errors)
pred4=int(prdct.prediction(red4)) + red4Error/len(errors)
pred5=int(prdct.prediction(red5)) + red5Error/len(errors)
pred6=int(prdct.prediction(red6)) + red6Error/len(errors)
pblue=int(prdct.prediction(blue)) + blueError/len(errors)

    经过两次使用误差平均值修正预测结果的方法效果不好(可能是试验次数比较少),两次预测到的个数都降为1,正在考虑用误差平均值修正是否合理,是否在算法预测结果和误差平均值上使用加权来计算。

    发现问题:拿pred2=int(prdct.prediction(red2))+red2Error/len(errors)来说,今天测试prdct.prediction(red2)的结果是2.0,将它转成int类型也就是int(prdct.prediction(red2))之后得到的结果居然变成1了,测试了几个都是出现这样的问题,转成int类型后小了1,不知道为什么。干脆就按浮点来存吧。发现这个错误的过程是我偶然把预测数字与误差平均值分开打印,发现转成int型后少了1,之后定位为在将用算法预测的浮点数字转成整型的时候数字减小了1但奇怪的是pred1却没有问题,或许因为这次prdct.prediction(red1)本身就等于1.0

    使用误差平均值预测的2015043期中了两个号码,而且位置相同。今天417日开始在加上误差平均值的基础上,再加上最新的误差值计算,然后在尝试将最新误差除以2再加上使用误差平均值算出的数字,再计算这三种方式计算出的平均值试试,然后同时看着他们的效果(或许可以用这三种方式确定权值)。

+误差平均

5

7

14

22

26

29

10

+平均+最后

11

12

14

24

26

26

16

+平均+最后/2

8

9

14

23

26

27

13

平均

8

9.3333

14

23

26

27.3333

13

 

20115043这期的中奖号码是:2,3,4,13,14,16,2,与预测的相差太大,还是采用误差平均值计算。

2015424日,采用加上最后一次误差/2计算。

2015426日,期号2015047,预测中3个,而且位置相同,所采用方法是加上了最后一次误差/2计算,这样带来一个问题,对于预测中的数字,而且位置相同,这样第二次预测的时候所加上的误差就是0,也就是说第二次预测完全是使用预测算法,这样没有加上任何误差预测出来的数字准确率如何还不知道,姑且使用这种方法一段时间。

2015428日,期号2015048,使用上述方法预测中2个。

201558日,期号2015053,使用上述方法预测中3个,其中两个位置正确。

        2015510日,期号2015054,预测中国一个红球一个篮球,这是第一次预测到可以中奖的号码,能够中5元。









评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值