Python数据分析之双色球基于线性回归算法预测下期中奖结果示例


Posted in Python onFebruary 08, 2018

本文实例讲述了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)

画图结果:

Python数据分析之双色球基于线性回归算法预测下期中奖结果示例

预测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继承和抽象类的实现方法
Jan 14 Python
在Python中使用SimpleParse模块进行解析的教程
Apr 11 Python
python实现支持目录FTP上传下载文件的方法
Jun 03 Python
python+matplotlib绘制旋转椭圆实例代码
Jan 12 Python
python3实现基于用户的协同过滤
May 31 Python
python对矩阵进行转置的2种处理方法
Jul 17 Python
Python模块汇总(常用第三方库)
Oct 07 Python
python使用Matplotlib改变坐标轴的默认位置
Oct 18 Python
nginx搭建基于python的web环境的实现步骤
Jan 03 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
Mar 25 Python
Python自然语言处理之切分算法详解
Apr 25 Python
Python爬虫之爬取二手房信息
Apr 27 Python
Python编程argparse入门浅析
Feb 07 #Python
PyQt5主窗口动态加载Widget实例代码
Feb 07 #Python
学习python中matplotlib绘图设置坐标轴刻度、文本
Feb 07 #Python
PyQt5打开文件对话框QFileDialog实例代码
Feb 07 #Python
python OpenCV学习笔记直方图反向投影的实现
Feb 07 #Python
Python实现上下班抢个顺风单脚本
Feb 07 #Python
Python SqlAlchemy动态添加数据表字段实例解析
Feb 07 #Python
You might like
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
2012/03/06 PHP
浅谈php serialize()与unserialize()的用法
2013/06/05 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
2013/06/29 PHP
分享下PHP register_globals 值为on与off的理解
2013/09/26 PHP
PHP将session信息存储到数据库的类实例
2015/03/04 PHP
php类的扩展和继承用法实例
2015/06/20 PHP
广告显示判断
2006/08/31 Javascript
IE7提供XMLHttpRequest对象为兼容
2007/03/08 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
2013/03/14 Javascript
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
2013/05/19 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
Javascript学习指南
2014/12/01 Javascript
JS打字效果的动态菜单代码分享
2015/08/21 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
2015/11/03 Javascript
WebPack基础知识详解
2017/01/16 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
js实现放大镜特效
2017/05/18 Javascript
微信小程序checkbox组件使用详解
2018/01/31 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
python操作摄像头截图实现远程监控的例子
2014/03/25 Python
Python实现删除Android工程中的冗余字符串
2015/01/19 Python
Python使用pandas处理CSV文件的实例讲解
2018/06/22 Python
python实现各种插值法(数值分析)
2019/07/30 Python
Python文件操作方法详解
2020/02/09 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
Django-rest-framework中过滤器的定制实例
2020/04/01 Python
台湾森森购物网:U-mall
2017/10/16 全球购物
购买中国最好的电子产品:Geekbuying
2018/03/13 全球购物
大学生专科学习生活的自我评价
2013/12/07 职场文书
招聘与培训专员岗位职责
2014/01/30 职场文书
软件专业毕业生个人自我鉴定
2014/04/17 职场文书
群教班子对照检查材料
2014/08/26 职场文书
群众路线问题查摆对照检查材料
2014/10/04 职场文书
教师党员承诺书2015
2015/01/21 职场文书
三好学生竞选稿
2015/11/21 职场文书
基于Android10渲染Surface的创建过程
2022/08/14 Java/Android