gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python数据分析之双色球基于线性回归算法预测下期中奖结果示例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了Python数据分析之双色球基于线性回归算法预测下期中奖结果。分享给大家供大家参考,具体如下:

前面讲述了关于双色球的各种算法,这里将进行下期双色球号码的预测,想想有些小激动啊.

代码中使用了线性回归算法,这个场景使用这个算法,预测效果一般,各位可以考虑使用其他算法尝试结果.

发现之前有很多代码都是重复的工作,为了让代码看的更优雅,定义了函数,去调用,顿时高大上了 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/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 。

以下为预测值:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#取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 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#取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程序设计有所帮助.

原文链接:http://blog.csdn.net/levy_cui/article/details/51497709 。

最后此篇关于Python数据分析之双色球基于线性回归算法预测下期中奖结果示例的文章就讲到这里了,如果你想了解更多关于Python数据分析之双色球基于线性回归算法预测下期中奖结果示例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com