本文实例讲述了Python数据分析之双色球基于线性回归算法预测下期中奖结果。分享给大家供大家参考,具体如下:
前面讲述了关于双色球的各种算法,这里将进行下期双色球号码的预测,想想有些小激动啊。
代码中使用了线性回归算法,这个场景使用这个算法,预测效果一般,各位可以考虑使用其他算法尝试结果。
发现之前有很多代码都是重复的工作,为了让代码看的更优雅,定义了函数,去调用,顿时高大上了
#!/usr/bin/python # -*- coding:UTF-8 -*- #导入需要的包 import pandas as pd import numpy as np import matplotlib.pyplot as plt import operator from sklearn import datasets,linear_model from sklearn.linear_model import LogisticRegression #读取文件 df = pd.read_table('newdata.txt',header=None,sep=',') #读取日期 tdate = sorted(df.loc[:,0]) #将以列项为数据,将球号码取出,写入到csv文件中,并取50行数据 # Function to red number to csv file def RedToCsv(h_num,num,csv_name): h_num = df.loc[:,num:num].values h_num = h_num[50::-1] renum2 = pd.DataFrame(h_num) renum2.to_csv(csv_name,header=None) fp = file(csv_name) s = fp.read() fp.close() a = s.split('\n') a.insert(0, 'numid,number') s = '\n'.join(a) fp = file(csv_name, 'w') fp.write(s) fp.close() #调用取号码函数 # create file RedToCsv('red1',1,'rednum1data.csv') RedToCsv('red2',2,'rednum2data.csv') RedToCsv('red3',3,'rednum3data.csv') RedToCsv('red4',4,'rednum4data.csv') RedToCsv('red5',5,'rednum5data.csv') RedToCsv('red6',6,'rednum6data.csv') RedToCsv('blue1',7,'bluenumdata.csv') #获取数据,X_parameter为numid数据,Y_parameter为number数据 # Function to get data def get_data(file_name): data = pd.read_csv(file_name) X_parameter = [] Y_parameter = [] for single_square_feet ,single_price_value in zip(data['numid'],data['number']): X_parameter.append([float(single_square_feet)]) Y_parameter.append(float(single_price_value)) return X_parameter,Y_parameter #训练线性模型 # Function for Fitting our data to Linear model def linear_model_main(X_parameters,Y_parameters,predict_value): # Create linear regression object regr = linear_model.LinearRegression() #regr = LogisticRegression() regr.fit(X_parameters, Y_parameters) predict_outcome = regr.predict(predict_value) predictions = {} predictions['intercept'] = regr.intercept_ predictions['coefficient'] = regr.coef_ predictions['predicted_value'] = predict_outcome return predictions #获取预测结果函数 def get_predicted_num(inputfile,num): X,Y = get_data(inputfile) predictvalue = 51 result = linear_model_main(X,Y,predictvalue) print "num "+ str(num) +" Intercept value " , result['intercept'] print "num "+ str(num) +" coefficient" , result['coefficient'] print "num "+ str(num) +" Predicted value: ",result['predicted_value'] #调用函数分别预测红球、蓝球 get_predicted_num('rednum1data.csv',1) get_predicted_num('rednum2data.csv',2) get_predicted_num('rednum3data.csv',3) get_predicted_num('rednum4data.csv',4) get_predicted_num('rednum5data.csv',5) get_predicted_num('rednum6data.csv',6) get_predicted_num('bluenumdata.csv',1) # 获取X,Y数据预测结果 # X,Y = get_data('rednum1data.csv') # predictvalue = 21 # result = linear_model_main(X,Y,predictvalue) # print "red num 1 Intercept value " , result['intercept'] # print "red num 1 coefficient" , result['coefficient'] # print "red num 1 Predicted value: ",result['predicted_value'] # Function to show the resutls of linear fit model def show_linear_line(X_parameters,Y_parameters): # Create linear regression object regr = linear_model.LinearRegression() #regr = LogisticRegression() regr.fit(X_parameters, Y_parameters) plt.figure(figsize=(12,6),dpi=80) plt.legend(loc='best') plt.scatter(X_parameters,Y_parameters,color='blue') plt.plot(X_parameters,regr.predict(X_parameters),color='red',linewidth=4) plt.xticks(()) plt.yticks(()) plt.show() #显示模型图像,如果需要画图,将“获取X,Y数据预测结果”这块注释去掉,“调用函数分别预测红球、蓝球”这块代码注释下 # show_linear_line(X,Y)
画图结果:
预测2016-05-15开奖结果:
实际开奖结果:05 06 10 16 22 26 11
以下为预测值:
#取5个数,计算的结果 num 1 Intercept value 5.66666666667 num 1 coefficient [-0.6] num 1 Predicted value: [ 2.06666667] num 2 Intercept value 7.33333333333 num 2 coefficient [ 0.2] num 2 Predicted value: [ 8.53333333] num 3 Intercept value 14.619047619 num 3 coefficient [-0.51428571] num 3 Predicted value: [ 11.53333333] num 4 Intercept value 17.7619047619 num 4 coefficient [-0.37142857] num 4 Predicted value: [ 15.53333333] num 5 Intercept value 21.7142857143 num 5 coefficient [ 1.11428571] num 5 Predicted value: [ 28.4] num 6 Intercept value 28.5238095238 num 6 coefficient [ 0.65714286] num 6 Predicted value: [ 32.46666667] num 1 Intercept value 9.57142857143 num 1 coefficient [-0.82857143] num 1 Predicted value: [ 4.6]
四舍五入结果:
2 9 12 16 28 33 5
#取12个数,计算的结果四舍五入: 3 7 12 15 24 30 7 #取15个数,计算的结果四舍五入: 4 7 13 15 25 31 7 #取18个数,计算的结果四舍五入: 4 8 13 16 23 31 8 #取20个数,计算的结果四舍五入: 4 7 12 22 24 27 10 #取25个数,计算的结果四舍五入: 7 8 13 17 24 30 6 #取50个数,计算的结果四舍五入: 4 10 14 18 23 29 8 #取100个数,计算的结果四舍五入: 5 11 15 19 24 29 8 #取500个数,计算的结果四舍五入: 5 10 15 20 24 29 9 #取1000个数,计算的结果四舍五入: 5 10 14 19 24 29 9 #取1939个数,计算的结果四舍五入: 5 10 14 19 24 29 9
看来预测中奖真是有些难度,随机性太高,双色球预测案例,只是为了让入门数据分析的朋友有些思路,要想中大奖还是有难度的,多做好事善事多积德行善吧。
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年11月26日
2024年11月26日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]