sklearn回归 预测下一期双色球

sklearn回归 预测下一期双色球

最近接到预测双色球的任务,因为随机性过大,尝试搭建DNN RNN LSTM 都有较大的LOSS(随机性太强)。故用SK里自带的回归来预测。

首先我们爬取数据


import requests
from bs4 import BeautifulSoup
from collections import Counter# 获取内容
res = requests.get('http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html', timeout=30)
res.encoding = 'utf-8'
htm = res.text
# BeautifulSoup 解析内容
soup = BeautifulSoup(htm, 'html.parser')
# 获得url前缀
prefix_url = 'http://kaijiang.zhcw.com/zhcw/html/ssq/list'
# 获得总页数
total = int(soup.find('p', attrs={"class": "pg"}).find_all('strong')[0].text)
# 写入shuangseqiu.txt
local_file = open('shuangseqiu.txt', 'w')red_num = []  # 所有红球
blue_num = []  # 所有蓝球# 获取每页的开奖信息
for page_num in range(1, total + 1):t_url = prefix_url + '_' + str(page_num) + '.html'print(t_url)res2 = requests.get(t_url, timeout=30)res2.encoding = 'utf-8'page_context = res2.textpage_soup = BeautifulSoup(page_context, 'html.parser')if page_soup.table is None:continueelif page_soup.table:table_rows = page_soup.table.find_all('tr')for row_num in range(2, len(table_rows) - 1):row_tds = table_rows[row_num].find_all('td')ems = row_tds[2].find_all('em')result = row_tds[0].string +','+ems[0].string+',' + ems[1].string + ',' + \ems[2].string + ',' + ems[3].string + ',' + ems[4].string + ',' + ems[5].string + ',' + ems[6].string#格式为  日期,红球1,红球2,红球3,红球4,红球5,红球6,蓝球local_file.write(result + '\n')#print(result)else:continue

获取完后生成的shuangseqiu.txt 内容格式应为
2018-10-23,09,13,14,19,22,25,02
之后读取TXT数据 开始进行回归预测

import pandas as pd
import matplotlib.pyplot as plt
from sklearn import datasets, linear_model
from sklearn.linear_model import LogisticRegression# 读取上面获取的shuangseqiu.txt地址,指定分割符为逗号
df = pd.read_table('D:/untitled1/shuangseqiu.txt', header=None, sep=',')# 第一列读取日期
tdate = sorted(df.loc[:, 0])# 将每列球号码读出,写入到csv文件中,一共2229行数据,对应2229期数据
def readcsv(h_num, num, csv_name):h_num = df.loc[:, num:num].valuesh_num = h_num[2229::-1]renum2 = pd.DataFrame(h_num)renum2.to_csv(csv_name, header=None)fp = open(csv_name)s = fp.read()fp.close()a = s.split('\n')a.insert(0, 'numid,number')s = '\n'.join(a)fp = open(csv_name, 'w')fp.write(s)fp.close()# 调用取号码函数
readcsv('red1', 1, 'rednum1.csv')
readcsv('red2', 2, 'rednum2.csv')
readcsv('red3', 3, 'rednum3.csv')
readcsv('red4', 4, 'rednum4.csv')
readcsv('red5', 5, 'rednum5.csv')
readcsv('red6', 6, 'rednum6.csv')
readcsv('blue1', 7, 'bluenum.csv')# 获取数据,X_parameter为numid数据,Y_parameter为number数据
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([int(single_square_feet)])Y_parameter.append(int(single_price_value))return X_parameter, Y_parameter# 用Sklearn自带的LinearRegression回归,并将结果取整
def linearmodel(X_parameters, Y_parameters, predict_value):# Create linear regression objectlml = linear_model.LinearRegression()lml.fit(X_parameters, Y_parameters)predict_outcome = int(lml.predict(predict_value)+0.5)predictions = {}predictions['截距'] = lml.intercept_predictions['斜率'] = lml.coef_predictions['预测值'] = predict_outcomereturn predictions# 获取预测结果函数
def predicted_num(inputfile, num):X, Y = get_data(inputfile)predictvalue = 2229result = linearmodel(X, Y, predictvalue)print(str(num)+'号球' + " 截距为:", result['截距'])print(str(num)+'号球' + " 斜率为:", result['斜率'])print(str(num)+'号球' + " 下期号码为: ", result['预测值'])#  调用函数分别预测红球、蓝球
predicted_num('rednum1.csv', 1)
predicted_num('rednum2.csv', 2)
predicted_num('rednum3.csv', 3)
predicted_num('rednum4.csv', 4)
predicted_num('rednum5.csv', 5)
predicted_num('rednum6.csv', 6)
predicted_num('bluenum.csv', 7)

运行结果如下图
在这里插入图片描述

可以看出在2000+期的数据下进行回归 因为球的数据是按照从小到大的顺序 所以在大数据下回归结果分布近似为等间隔(5 10 15 20 25.。。这样 33个球所以近似6等分)。

红球一的回归线
在这里插入图片描述
黑线为回归线 红球1-6从小到大排列,球1数小,均值小,所以回归偏下 最后为5

为了直观对比 下图选用红球6的回归图,可见其数据偏大,均值大,回归偏上
在这里插入图片描述

综上可看出预测数据接近各段均值 也从侧面证明了随机性很强, 所以想预测赚到钱还是算了><

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/55546.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PC与IOS outlook客户端配置大全——(163邮箱、QQ邮箱、谷歌gmail邮箱)

PC与IOS outlook客户端配置大全——&#xff08;163邮箱、QQ邮箱、谷歌gmail邮箱&#xff09; 问题描述版本 IOS outlook配置方法163邮箱QQ邮箱谷歌gmail邮箱 PC端登陆163邮箱QQ邮箱配置谷歌gmail邮箱配置学校邮箱 其他问题解决关于无法下载图片问题描述问题解决 163邮箱同步问…

PHPMailer使用封装教程:为自己的PHP项目配置邮件功能

PHPMailer使用封装教程&#xff1a;为自己的PHP项目配置邮件功能 若为获取最佳阅读体验&#xff0c;请移步至本文永久链接&#xff1a;https://xenns.com/posts/1df67ba2/ 开源的PHPMailer简洁易用&#xff0c;相对于PHP官方文档提供的mail()需要一个已安装且正在运行的邮件系…

现在最好用的或者你喜欢邮件客户端是什么?

经小众读者提名的我最喜爱的《邮件客户端》终于有结果了&#xff0c;看图&#xff1a; “终于”&#xff0c;很多同学来询问《邮件客户端》结果哪里去了&#xff0c;其实一直都在硬盘里&#xff0c;而且差点沉底了。 但是说好了的客户端&#xff0c;那么多人填 Gmail&#xff0…

邮件发送客户端

一、Java Mail API简介 JavaMail API是读取、撰写、发送电子信息的可选包。我们可用它来建立如Eudora、Foxmail、MS Outlook Express一般的邮件用户代理程序&#xff08;Mail User Agent,简称MUA&#xff09;。而不是像sendmail或者其它的邮件传输代理&#xff08;Mail Transf…

uniapp 微信小程序表单input输入框,点击下面的输入框时输入法弹出会把输入框内容顶上去

项目场景&#xff1a; 原因分析&#xff1a; 当前页面设置了高度&#xff0c;以及滚动轴&#xff0c;输入法弹出时并没有把页面内容往上定&#xff0c;只顶了输入框内容 解决方案&#xff1a; 不要设置死高度&#xff0c;内容自适应&#xff0c;输入法弹出时让他自己往上顶整…

chatgpt赋能python:Python小数点进位教程:学会进阶计算

Python小数点进位教程&#xff1a;学会进阶计算 什么是小数点进位&#xff1f; 小数点进位是指计算机在处理小数时发生的一种情况&#xff0c;即当小数位数过多时&#xff0c;计算机会自动四舍五入或向上进位&#xff0c;以保证计算的准确性。 Python中的小数点进位 在Pyth…

鸿蒙OS应用开发工具下载安装教程

前言 提示&#xff1a;面向全场景多设备&#xff0c;提供一站式的分布式应用开发平台&#xff0c;支持分布式多端开发、分布式多端调测、多端模拟仿真&#xff0c;全方位的质量与安全保障。 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例仅供参考&#xff0c;皆…

ubuntu20.04安装微信客户端,亲测有效!

腾讯微信官网没有出Ubuntu版本的客户端&#xff0c;但是可以根据我提供的微信客户端软件&#xff0c;在Ubuntu20.04版本上进行安装&#xff0c;亲测有效&#xff01;文章末尾提供下载链接。 Ubuntu版微信客户端&#xff0c;支持托盘菜单&#xff1b;支持搜索联系人&#xff1b;…

Ubuntu22.10 安装微信方法

Ubuntu22.10 安装微信方法 Ubuntu操作系统中&#xff0c;我尝试过用wine方式安装数次都没有能够启动成功。。。 方法如下 在Ubuntu上安装微信需要使用Wine&#xff0c;Wine是一款可以在Linux系统上运行Windows应用程序的兼容层。以下是安装微信的步骤&#xff1a;安装Wine 打…

Ubuntu系统下安装微信客户端

此项目为开源项目&#xff0c;电脑需要安装git和node.js github地址: https://github.com/geeeeeeeeek/electronic-wechat # 下载项目 git clone https://github.com/geeeeeeeeek/electronic-wechat.git # 进入项目目录 cd electronic-wechat # 安装依赖包&#xff0c;成功后…

如何更换安装鸿蒙系统,华为鸿蒙系统2.0如何进行安装?鸿蒙系统2.0安装方法详细介绍...

华为鸿蒙系统2.0如何进行安装&#xff1f;现在已经可以安装鸿蒙系统2.0&#xff0c;但是你不清楚安装&#xff0c;下面就让浏览器小编为大家带来&#xff0c;鸿蒙系统2.0安装方法详细介绍。 部分更新了华为鸿蒙OS用户表示,安卓和鸿蒙的应用软件都可以玩,UI暂时没变、用户体验感…

Ubuntu系统下安装微信

安装微信实现截图发送图片功能 1.打开终端输入命令&#xff0c;更新软件源 sudo apt-get update 2.输入以下命令&#xff08;一定注意 -O- 中间是大写字母O&#xff0c;不是0也不是小写o&#xff01;&#xff01;&#xff01;&#xff09; wget -O- https://deepin-wine.…

华为鸿蒙os下载安装,华为鸿蒙系统安装包

华为鸿蒙系统安装包下载是华为打造的最新安卓手机系统&#xff0c;华为鸿蒙系统可以让手机、穿戴设备、PC等终端之间连接更稳定&#xff0c;下载之后手机使用更流畅&#xff0c;可以说是2020年最好的安卓系统&#xff0c;功能强大很稳定&#xff0c;感兴趣的用户快来下载安装吧…

鸿蒙系统如何下载使用谷歌商店

下载 实际上&#xff0c;鸿蒙系统本身是有谷歌相关的文件&#xff0c;只是不能用而已 你打开设置&#xff0c;最下面就是google相关组件 网上有大量的繁杂的教程&#xff0c;不外乎是引流到qq&#xff0c;用电脑软件连接手机完成一堆复杂的操作 所以在我的极简理念之下&…

华为鸿蒙系统开发环境安装与初识

今天了解了一下华为鸿蒙系统开发&#xff0c;作为国产系统还是要去了解一下的&#xff0c;毕竟这个系统很多设备都会用到、例如PC、手机、电视等穿戴设备都会用到。 既然要开发那么肯定要成为开发者了&#xff0c;那么就都下面的网站注册成为开发者&#xff0c;https://develop…

Ubuntu20.04系统WineHQ7.0安装微信

提供3种Ubuntu系统安装微信的方法&#xff0c;在Ubuntu20.04上验证都ok。 1.WineHQ7.0安装微信&#xff1a;ubuntu20.04安装最新版微信 --可以支持微信最新版&#xff0c;但是适配的不是特别好&#xff1b;比如WeChartOCR.exe 报错。 2. 原生微信安装&#xff1a;linux系统下的…

手机提供GMS支持(适用安卓和鸿蒙系统)

手机提供GMS支持 - 适用安卓和鸿蒙系统 前言方式1&#xff1a;安装GMS套件&#xff08;不推荐&#xff09;方式2&#xff1a;安装OurPlay&#xff08;推荐&#xff09;方式3&#xff1a;安装Gspace&#xff08;推荐&#xff09; 前言 本文提供多种为手机&#xff08;安卓和鸿蒙…

python zmail 收发谷歌邮箱邮件遇到的问题

错误信息&#xff1a; 一、Please log in via your web browser and then try again.\n5.7.14 Learn more 二、poplib.error_proto: b’-ERR [AUTH] Web login required: https://support.google 三、534, b’5.7.14 <https://accounts.google.com/signin/continue?sarp1&a…

谷歌账号Gmail邮箱修改密码提示需要手机设备验证码如何处理

谷歌邮箱账号&#xff0c;GMail邮箱在修改密码的时候老是提示需要某台手机设备的验证码&#xff0c;这种问题怎么处理呢&#xff1f; 出现这个情况&#xff0c;主要是因为你的VPN代理IP不太干净导致的&#xff0c;干净的IP一般都不提示设备验证码的&#xff0c;特别是用第三方客…

国内随时接收发送谷歌邮箱

1. 写在前面 鉴于邮箱在我们生活开发学习中很重要&#xff0c;所以我们需要选择一种邮箱&#xff0c;国内这些邮箱中比如163或者qq太容易暴露个人信息了&#xff0c;当然可以对163邮箱自定义&#xff0c;但是国内这163太泛滥了&#xff0c;很难找到。所以谷歌邮箱是一个不错的选…