码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-04-15 11:28:17      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:双色球预测尝试



经过三次计算,发现计算结果相差不大,所以觉得预测算法不够完善,现在还不知道如何使用其他的方式来预测,所以只能计算每次预测的误差平均值,在预测的时候加上这个误差平均值,看看效果(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








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

标签:双色球预测尝试

原文地址:http://blog.csdn.net/lxytsos/article/details/45054935

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!