@本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府
本文实例讲述了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].valuesh_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 objectregr = 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_outcomereturn predictions
#获取预测结果函数
def get_predicted_num(inputfile,num):X,Y = get_data(inputfile)predictvalue = 51result = 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 objectregr = 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数据分析双色球基于线性回归算法预测下期中奖结果示例相关推荐

  1. 看老程序员如何用Python的SimPy库简化复杂的编程模型的

    @本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 文章目录 随机的定义 设置商店:对模拟编程 用监控程序监视模拟 三人不欢:一些结果(以及它们意味着什么) 在我遇到 SimPy 包 ...

  2. 一位Python老程序员,给Python初学者的建议,希望你们少走弯路!

    Python要学多久可以学会,达到精通呢? 任何知识都是基础入门比较快,达到通晓的程序是需求时日的,这是一个逐渐激烈的进程. 通晓任何一门编程语言,都需求通过大量的实践来积累经验,解决遇到的各种疑难问 ...

  3. java堆排序图解_108-堆排序的思路图解_清华毕业老程序员亲授通俗易懂的Java数据结构和算法​​​​教程_Java视频-51CTO学院...

    2.网上数据结构和算法的课程不少,但存在两个问题: 1)授课方式单一,大多是照着代码念一遍,数据结构和算法本身就比较难理解,对基础好的学员来说,还好一点,对基础不好的学生来说,基本上就是听天书了 2) ...

  4. python 中煤_程序员如何用Python科学炒股

    菜鸟学Python的第155篇原创文章 阅读本文大概需要3分钟 菜鸟独白 我是一个程序员,也是一个老股民,差不多有5年的股龄,经历过牛市也经历过熊市.起起伏伏,都没有怎么赚钱,至到去年我开始用Pyth ...

  5. 程序员如何用Python了解女朋友的情绪变化?

    作者:云外孤岛 来源:https://www.cnblogs.com/cloudbird/p/ 10534658.html 好不容易有了女朋友,可相处起来总是磕磕碰碰. 有时候,你很想关心她,但是你太 ...

  6. 赶在520之前,程序员如何用Python送上最特别的“我爱你”表白

    摘要: 每到情人节.七夕节,不少小伙伴大伙伴们都会遇到这样一个世纪问题--怎么给女朋友/老婆一个与众不同的节日惊喜.今天给大家分享一个独特的表白方法--用"我爱你"拼出心爱人的模样 ...

  7. python输出n个我爱你,赶在520之前,程序员如何用Python送上最特别的“我爱你”表白...

    摘要:每到情人节.七夕节,不少小伙伴大伙伴们都会遇到这样一个世纪问题--怎么给女朋友/老婆一个与众不同的节日惊喜.今天给大家分享一个独特的表白方法--用"我爱你"拼出心爱人的模样! ...

  8. python真的那么强大嘛-老程序员说:从结构看,Python到底强大在哪?

    为什么那么多人喜欢Python,今天,我们从一个老程序员的经验来看一下Python到底强大在哪儿. Python对新手极其友好.对于初学者来说,Python极其容易.它被认为是最简单方便的语言之一:简 ...

  9. (精华转看)一个老程序员的心里话

    一个老程序员的心里话  (本来不想写的,实在不想看到某些人误人子弟,混淆视听,耽误了中国IT的未来,所以一吐为快) 一些人总是发出一些错误的声音,形成了劣胜优汰可怕的现象.他们在误导着中国,把我们的后 ...

最新文章

  1. 8张图让你一步步看清 async/await 和 promise 的执行顺序
  2. html需要顺序阅读吗,前端知识:HTML5所有的标签-按顺序排列 | 前端面试题
  3. 在Archlinuxarm上搭建Minecraft基岩服务器
  4. (转)Eclipse_jee安装maven插件
  5. 【正一专栏】中国足球不是你想不玩就不玩的
  6. 低成本运行 Spark 数据计算
  7. java中不用impore导入的_java import机制(不用IDE)
  8. java带参方法上机一_Java带参方法的总结
  9. 读取properties文件,中文乱码
  10. 【CCCC】L3-001 凑零钱 (30分),,01背包路径打印
  11. 父类构造函数与子类构造函数的关系
  12. 2022版全国各地mapinfo格式电子地图及mapinfo二次开发
  13. 排队论的计算机模拟,8.2 排队论模型(二)-----计算机模拟.pdf
  14. 使用HttpClient4来构建Spring RestTemplate
  15. 淘宝评论不回复买家怎样看到买家评论,如何提前处理买家差评
  16. 谢孟媛老师 初级文法学习笔记
  17. html qq表情插件,【精品】14款优秀的jQuery和CSS3插件及源码
  18. 24 个很酷的 Linux/Unix 工具
  19. 计算机毕业设计-基于SSM+Vue的公交路线管理系统-java公交管理系统代码
  20. 离散数学_九章:关系(1)

热门文章

  1. cpu与内存的工作原理
  2. 大数据时代银行业应对策略
  3. 币圈投资哪些陷阱你必须得知道(附建议)
  4. [Unity] GPU动画实现(五)——渲染GPU动画
  5. 怎么进入命令行操作mysql数据库_MySQL数据库之如何用命令行进入mysql具体操作步骤...
  6. CSDN草稿箱在哪里
  7. Android检测服务是否运行
  8. less本地环境输出hello-world
  9. Mac安装软件提示文件损坏
  10. ♣♠JavaScript