当前位置: 首页 > news >正文

基于Python机器学习的双色球数据分析与预测

python统计分析2003-2024年所有的中奖记录,通过人工智能机器学习预测双色球,个人意见,仅供参考.

声明:双色球具有随机性,任何工具无法预测。本文章仅作为技术交流,提供学习参考。本文所涉及的代码均为python之机器学习的代码。双色球为公益事业,请大家一起为公益加油!

一,收集数据。

首先,我们需要将双色球的历史数据收集到本地。可以通过官方网站、网络爬虫或API接口来获取相关数据。历史数据通常包括开奖日期、红球号码、蓝球号码及其他相关信息。确保将数据保存为CSV或Excel格式,以便后续分析和处理。

以下是采集数据的代码。

'''@date 2024年11月20日
@author liandyao
抖音号: liandyao
'''
import csv
import timeimport numpy as np
import requests
from bs4 import BeautifulSoup# 定义 URL
url = "https://kaijiang.78500.cn/ssq/"header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0','cookie': '__jsluid_s=5cbbf684106add1620b7f5ce24625702; Hm_lvt_04f41dcf6d388d39feb87abb77da8596=1732092072,1732159935; Hm_lpvt_04f41dcf6d388d39feb87abb77da8596=1732159935; HMACCOUNT=99BF57D36F600EB6','referer': 'https://kaijiang.78500.cn/ssq/'
}data = []  # 用于存储提取的数据
# 循环从 2004 年到 2024 年
for year in range(2003, 2025):  # 2025 是上限,因此将终止于 2024params = {"startqi": "",  # 空字符串"endqi": "",  # 空字符串"year": str(year),  # 当前年份"action": "years"}# 发送 POST 请求response = requests.post(url, data=params,headers=header)time.sleep(np.random.randint(1, 5))# 输出请求状态码和返回内容的前100个字符print(f"年份: {year}, 状态码: {response.status_code}, 返回内容: {response.text[:100]}")  # 只输出前100个字符# 检查请求是否成功# 检查请求是否成功if response.status_code == 200:# 解析 HTML 内容soup = BeautifulSoup(response.text, 'html.parser')# 查找 tbody 下的所有 trtbody = soup.find('tbody', class_='list-tr')if tbody:rows = tbody.find_all('tr')for row in rows:# 提取期号和开奖时间tds = row.find_all('td')if len(tds) >= 3:  # 确保有足够的 tdissue_number = tds[0].text.strip()  # 期号draw_time = tds[1].text.strip()  # 开奖时间# 提取开奖号码numbers_div = tds[2].find('div')  # 找到包含号码的 divred_numbers = [num.text.strip() for num in numbers_div.find_all('span', class_='red')]# 注意,这里的蓝球是一个列表,有时会开出快乐星期天的另一个篮球,所以我们只取第一个篮球blue_numbers = [num.text.strip() for num in numbers_div.find_all('span', class_='blue')]top1 = tds[5].text.strip()  # 一等奖top2 = tds[7].text.strip()  # 二等奖top3 = tds[9].text.strip()  # 三等奖# 整合数据data.append([issue_number, draw_time] + red_numbers + [blue_numbers[0]] +[top1,top2,top3])# 导出为 CSV 文件
with open('lottery_results_2003_2024.csv', 'w', newline='', encoding='utf-8') as csvfile:csv_writer = csv.writer(csvfile)# 写入标题行csv_writer.writerow(['期号', '开奖时间', '红球1', '红球2', '红球3', '红球4', '红球5', '红球6', '蓝球', '一等奖', '二等奖', '三等奖'])# 写入数据csv_writer.writerows(data)print("数据已成功导出为 lottery_results_2003_2024.csv")

采集是数据包括:

 

二,python导入数据

在完成数据收集后,我们可以使用Python的Pandas库导入数据。以下是一个简单的示例:

import pandas as pd  # 导入数据  
data = pd.read_csv('shuangseqiu_data.csv')  
print(data.head())  

可以打印前5行数据显示 ,确认数据是否加载成功。

三,数据预处理

数据预处理是机器学习中至关重要的一环。我们需要对数据进行清洗和转换,以便模型能够有效地进行训练和预测。主要步骤包括:

  • 处理缺失值
  • 转换数据类型
  • 归一化或标准化数值

以下是一个处理缺失值的示例:

# 检查缺失值  
print(data.isnull().sum())  # 填充缺失值  
data.fillna(method='ffill', inplace=True)

 转换数据类型

# 将开奖时间转换为日期格式
df['开奖时间'] = pd.to_datetime(df['开奖时间'])

归一化或标准化数值 

采集的数据比较标准,无需处理.

 

四,创建特征数据和建立模型。

在准备好数据后,我们需要创建特征数据集并选择合适的机器学习模型进行训练。特征可以包括红球和蓝球的历史出现频率、和值、跨度等。我们可以使用Scikit-learn库来创建和训练模型。

我们使用期数作为特征值,红球和蓝球作为预测目标值.

# 特征和标签  
X = df[['期号']]  
y_red = df[['红球1', '红球2', '红球3', '红球4', '红球5', '红球6']]  
y_blue = df[['蓝球']]  

 划分训练集和测试集,80%的训练集和20%的测试集

# 划分数据集  
X_train, X_test, y_red_train, y_red_test = train_test_split(X, y_red, test_size=0.2, random_state=42)  
X_train, X_test, y_blue_train, y_blue_test = train_test_split(X, y_blue, test_size=0.2, random_state=42)

 使用随机森林算法来训练模型。

# 训练红球模型  
red_model = RandomForestClassifier(n_estimators=100, random_state=42)  
red_model.fit(X_train, y_red_train)  # 训练蓝球模型  
blue_model = RandomForestClassifier(n_estimators=100, random_state=42)  
blue_model.fit(X_train, y_blue_train)

 

五,预测结果

开始预测,我们输入特征值:2025100期

# 预测2025005期的红蓝球  
future_issue = pd.DataFrame({'期号': [2025100]})  
predicted_red = red_model.predict(future_issue)  
predicted_blue = blue_model.predict(future_issue)  print(f"预测的红球结果: {predicted_red[0]}")  
print(f"预测的蓝球结果: {predicted_blue[0]}")

预测的红球结果: [ 4  6 13 21 22 25]
预测的蓝球结果: 6

完整代码:

'''@date 2024年01月20日
@author liandyao
抖音号: liandyao
'''
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier# 创建数据框df = pd.read_csv('shuangseqiu_data.csv',encoding='gbk')# 特征和标签
X = df[['期号']]
y_red = df[['红球1', '红球2', '红球3', '红球4', '红球5', '红球6']]
y_blue = df[['蓝球']]# 划分数据集
X_train, X_test, y_red_train, y_red_test = train_test_split(X, y_red, test_size=0.2, random_state=42)
X_train, X_test, y_blue_train, y_blue_test = train_test_split(X, y_blue, test_size=0.2, random_state=42)# 训练红球模型
red_model = RandomForestClassifier(n_estimators=100, random_state=42)
red_model.fit(X_train, y_red_train)# 训练蓝球模型
blue_model = RandomForestClassifier(n_estimators=100, random_state=42)
blue_model.fit(X_train, y_blue_train)# 预测2025005期的红蓝球
future_issue = pd.DataFrame({'期号': [2025008]})
predicted_red = red_model.predict(future_issue)
predicted_blue = blue_model.predict(future_issue)print(f"预测的红球结果: {predicted_red[0]}")
print(f"预测的蓝球结果: {predicted_blue[0]}")

总结 

  1. 数据量:提供的数据量较小,可能影响模型的准确性。通常需要更多的历史数据来训练有效的模型。
  2. 随机性:双色球的结果具有随机性,预测结果不应被视为实际的开奖结果。

通过以上步骤,我们简单地演示了如何使用Python进行双色球数据分析与预测。尽管机器学习可以帮助我们理解数据中的某些模式,但彩票的随机性质使得任何预测都不能保证成功。希望大家在进行这些技术探索时,始终保持理性和谨慎。双色球是公益事业,祝大家好运!

相关文章:

基于Python机器学习的双色球数据分析与预测

python统计分析2003-2024年所有的中奖记录,通过人工智能机器学习预测双色球,个人意见,仅供参考. 声明:双色球具有随机性,任何工具无法预测。本文章仅作为技术交流,提供学习参考。本文所涉及的代码均为python之机器学习的代码。双色球为公益事…...

微软Win10 RP 19045.5435(KB5050081)预览版发布!

系统之家1月20日最新报道,微软面向Release Preview频道的Windows Insider项目成员,发布了适用于Windows10 22H2版本的KB5050081更新,更新后系统版本号将升至19045.5435。本次更新增加了对GB18030-2022标准的支持,同时新版日历将为…...

使用 Parcel 和 NPM 脚本进行打包

使用 Parcel 和 NPM 脚本进行打包 Parcel Parcel 是一个零配置的网页应用程序打包工具,主要用于快速构建现代 JavaScript 应用。 我们可以使用npm直接安装它 npm install --save-dev parcel //这将把 Parcel 添加到 devDependencies 中,表明它是一个…...

HTML<center>标签

HTML5不支持。 <center>标签在HTML4中用于使文本居中对齐。 用什么来代替呢&#xff1f; 例子 居中对齐文本&#xff08;使用 CSS&#xff09;&#xff1a; <html> <head> <style> h1 {text-align: center;} p {text-align: center;} div {text-a…...

LatentSync本地部署教程:基于音频精准生成唇形高度同步视频

LatentSync 是字节跳动联合北京交通大学推出的一个端到端的唇形同步框架&#xff0c;以下是对其的详细介绍&#xff1a; 一、技术基础 LatentSync 基于音频条件的潜在扩散模型&#xff0c;无需任何中间的 3D 表示或 2D 特征点。它利用了 Stable Diffusion 的强大生成能力&…...

ES使用笔记,聚合分组后再分页,探索性能优化问题

之前分享过一篇文档,也是关于聚合分组后再分页的具体实现,当时只想着怎么实现,没有去主要探索ES性能优化的问题, 这篇我会换一种方式,重新实现这个聚合分组后再分页的操作,并且指出能优化性能点,可能我们再使用的时候,并没有注意过的点,希望对你有帮助!大佬的话,请忽略! 上源码…...

VUE3 vite下的axios跨域

在使用 Vite 开发时&#xff0c;如果你的前端项目需要请求后端 API&#xff0c;且后端和前端不在同一个域上&#xff0c;可能会遇到跨域问题。跨域是指浏览器出于安全考虑&#xff0c;阻止了前端网页向不同源&#xff08;域名、协议、端口&#xff09;发送请求。 解决跨域问题…...

Mac下安装ADB环境的三种方式

参考网址&#xff1a; Mac下安装ADB环境的三种方式-百度开发者中心 ADB&#xff0c;即Android Debug Bridge&#xff0c;是Android开发过程中不可或缺的工具。通过ADB&#xff0c;开发者可以在计算机上管理设备或模拟器上的应用&#xff0c;提供了丰富的调试功能。然而&#…...

在Vue中,<img> 标签的 src 值

1. 直接指定 src 的值&#xff08;适用于网络图片&#xff09; 如果你使用的是网络图片&#xff08;即图片的URL是完整的HTTP或HTTPS链接&#xff09;&#xff0c;可以直接指定 src 的值&#xff1a; vue 复制 <template><div><img src"https://exampl…...

Kotlin基础知识学习(三)

函数使用 基本用法 函数声明变化 如果函数是公开的&#xff0c;则public关键字可以省略。用fun关键字表示函数的定义。如果函数没有返回值可以不用声明。如果函数表示重载&#xff0c;直接在fun同一行用override修饰。函数参数格式是变量名&#xff1a;变量类型。函数参数允…...

渗透测试之XEE[外部实体注入]漏洞 原理 攻击手法 xml语言结构 防御手法

目录 原理 XML语言解释 什么是xml语言&#xff1a; 以PHP举例xml外部实体注入 XML语言结构 面试题目 如何寻找xxe漏洞 XEE漏洞修复域防御 提高版本 代码修复 php java python 手动黑名单过滤(不推荐) 一篇文章带你深入理解漏洞之 XXE 漏洞 - 先知社区 原理 XXE&…...

店铺营业状态设置(day05)

Redis入门 Redis简介 Redis 是一个基于内存的 key-value 结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件。 Redis是一个基于内存的 key-value 结构数据库。 主要特点&#xff1a; 1、基于内存存储&#xff0c;读写性能高 2、适合存储热点数据&#xff08;热点…...

游戏引擎学习第84天

仓库:https://gitee.com/mrxiao_com/2d_game_2 我们正在试图弄清楚如何完成我们的世界构建 上周做了一些偏离计划的工作&#xff0c;开发了一个小型的背景位图合成工具&#xff0c;这个工具做得还不错&#xff0c;虽然是临时拼凑的&#xff0c;但验证了背景构建的思路。这个过…...

快手SDK接入错误处理经验总结(WebGL方案)

1、打包时提示Assets\WebGLTemplates\ks路径下未找到Index.html文件错误 处理方法&#xff1a;直接使用Unity默认模板下的Index.html文件即可 文件所在路径&#xff1a;Unity安装路径\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\WebGLTemplates\Default 参考图&a…...

C语言 for 循环:解谜数学,玩转生活!

放在最前面的 &#x1f388; &#x1f388; 我的CSDN主页:OTWOL的主页&#xff0c;欢迎&#xff01;&#xff01;&#xff01;&#x1f44b;&#x1f3fc;&#x1f44b;&#x1f3fc; &#x1f389;&#x1f389;我的C语言初阶合集&#xff1a;C语言初阶合集&#xff0c;希望能…...

Node.js 与 JavaScript 是什么关系

JavaScript 是一种编程语言&#xff0c;而 Node.js 是 JavaScript 的一个运行环境&#xff0c;它们在不同的环境中使用&#xff0c;具有一些共同的语言基础&#xff0c;但也有各自独特的 API 和模块&#xff0c;共同推动着 JavaScript 在前后端开发中的广泛应用。 一、基础语言…...

Java 大视界 -- Java 大数据性能监控与调优:全链路性能分析与优化(十五)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...

深入Spring Boot:自定义Starter开发与实践

引言 Spring Boot通过其强大的自动配置机制和丰富的Starter模块&#xff0c;极大地简化了Spring应用的开发过程。Starter模块封装了一组相关的依赖和配置&#xff0c;使得开发者可以通过简单的依赖引入&#xff0c;快速启用特定的功能。然而&#xff0c;除了使用Spring Boot提…...

React 中hooks之useTransition使用总结

目录 概述基本用法使用场景最佳实践注意事项 概述 什么是 useTransition? useTransition 是 React 18 引入的新 Hook&#xff0c;用于标记非紧急的状态更新。它允许组件在状态转换期间保持响应&#xff0c;通过将某些更新标记为"过渡"来推迟它们的渲染。 主要特…...

怎样使用树莓派自己搭建一套ADS-B信号接收系统

0 我们知道&#xff0c;ADS-B全称广播式自动相关监视系统&#xff0c;其实就是飞机发出的广播信号&#xff0c;用明码来对外发送自己的位置、高度、速度、航向等信息&#xff0c;是公开信息。连续接收到一架飞机发出的ADS-B信息后&#xff0c;可以通过其坐标点来描绘出飞机的航…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...