本文实例讲述了Python数据分析之双色球基于线性回归算法预测下期中奖结果。分享给大家供大家参考,具体如下:
前面讲述了关于双色球的各种算法,这里将进行下期双色球号码的预测,想想有些小激动啊。
代码中使用了线性回归算法,这个场景使用这个算法,预测效果一般,各位可以考虑使用其他算法尝试结果。
发现之前有很多代码都是重复的工作,为了让代码看的更优雅,定义了函数,去调用,顿时高大上了
# !/usr/bin/python # - * -编码:utf - 8 - * #导入需要的包 熊猫作为pd导入 进口numpy np 进口matplotlib。pyplot作为plt 进口经营者 从sklearn导入数据集,linear_model 从sklearn。linear_model进口LogisticRegression #读取文件 df=pd.read_table (newdata.txt,头=None, 9=" ") #读取日期 tdate=排序(df.loc [: 0]) #将以列项为数据,将球号码取出,写入到csv文件中,并取50行数据 #函数红色数字csv文件 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头=没有) fp=文件(csv_name) s=fp.read () fp.close () 一个=s.split (“\ n”) 一个。插入(0,numid、数量) s=' \ n ' . join () fp=文件(csv_name ' w ') fp.write (s) fp.close () #调用取号码函数 #创建文件 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('蓝天航空公司' 7 ' bluenumdata.csv ') #获取数据,X_parameter为numid数据,Y_parameter为数量数据 #函数来获取数据 def get_data (file_name): data=https://www.yisu.com/zixun/pd.read_csv (file_name) X_parameter=[] Y_parameter=[] single_square_feet, single_price_value zip(数据(“numid”),数据(“数量”)): X_parameter.append((浮动(single_square_feet))) Y_parameter.append(浮动(single_price_value)) 返回X_parameter Y_parameter #训练线性模型 #函数拟合线性模型的数据 def linear_model_main (X_parameters Y_parameters predict_value): #创建线性回归对象 regr=linear_model.LinearRegression () # regr=LogisticRegression () regr。fit (X_parameters Y_parameters) predict_outcome=regr.predict (predict_value) 预测={} [“拦截”]=regr.intercept_预测 [“系数”]=regr.coef_预测 [' predicted_value ']=predict_outcome预测 回归预测 #获取预测结果函数 def get_predicted_num (inputfile, num): X, Y=get_data (inputfile) predictvalue=https://www.yisu.com/zixun/51 结果=linear_model_main (X, Y, predictvalue) 打印“num”+ str (num) +“拦截价值”,结果(“拦截”) 打印“num”+ str (num) +“系数”,结果(“系数”) 打印“num”+ str (num) +“预测价值:”,结果(“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=https://www.yisu.com/zixun/21 #结果=linear_model_main (X, Y, predictvalue) #打印“红色num 1截距值”,结果(“拦截”) #打印“红色num 1系数”,结果(“系数”) #打印“红色num 1预测价值:”,结果(“predicted_value”) #函数来显示结果却线性模型 def show_linear_line (X_parameters Y_parameters): #创建线性回归对象 regr=linear_model.LinearRegression () # regr=LogisticRegression () regr。fit (X_parameters Y_parameters) 6)plt.figure (figsize=(12日,dpi=80) plt.legend (loc=白罴选? plt.scatter (X_parameters, Y_parameters,颜色=袄渡? plt.plot (X_parameters regr.predict (X_parameters),颜色=臁?线宽=4) plt.xticks (()) plt.yticks (()) plt.show () #显示模型图像,如果需要画的图,将“获取X, Y数据预测结果”这块注释去掉,“调用函数分别预测红球,蓝球”这块代码注释下 # show_linear_line (X, Y)Python数据分析之双色球基于线性回归算法预测下期中奖结果示例