基于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]}")
总结
- 数据量:提供的数据量较小,可能影响模型的准确性。通常需要更多的历史数据来训练有效的模型。
- 随机性:双色球的结果具有随机性,预测结果不应被视为实际的开奖结果。
通过以上步骤,我们简单地演示了如何使用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中用于使文本居中对齐。 用什么来代替呢? 例子 居中对齐文本(使用 CSS): <html> <head> <style> h1 {text-align: center;} p {text-align: center;} div {text-a…...
LatentSync本地部署教程:基于音频精准生成唇形高度同步视频
LatentSync 是字节跳动联合北京交通大学推出的一个端到端的唇形同步框架,以下是对其的详细介绍: 一、技术基础 LatentSync 基于音频条件的潜在扩散模型,无需任何中间的 3D 表示或 2D 特征点。它利用了 Stable Diffusion 的强大生成能力&…...
ES使用笔记,聚合分组后再分页,探索性能优化问题
之前分享过一篇文档,也是关于聚合分组后再分页的具体实现,当时只想着怎么实现,没有去主要探索ES性能优化的问题, 这篇我会换一种方式,重新实现这个聚合分组后再分页的操作,并且指出能优化性能点,可能我们再使用的时候,并没有注意过的点,希望对你有帮助!大佬的话,请忽略! 上源码…...
VUE3 vite下的axios跨域
在使用 Vite 开发时,如果你的前端项目需要请求后端 API,且后端和前端不在同一个域上,可能会遇到跨域问题。跨域是指浏览器出于安全考虑,阻止了前端网页向不同源(域名、协议、端口)发送请求。 解决跨域问题…...
Mac下安装ADB环境的三种方式
参考网址: Mac下安装ADB环境的三种方式-百度开发者中心 ADB,即Android Debug Bridge,是Android开发过程中不可或缺的工具。通过ADB,开发者可以在计算机上管理设备或模拟器上的应用,提供了丰富的调试功能。然而&#…...
在Vue中,<img> 标签的 src 值
1. 直接指定 src 的值(适用于网络图片) 如果你使用的是网络图片(即图片的URL是完整的HTTP或HTTPS链接),可以直接指定 src 的值: vue 复制 <template><div><img src"https://exampl…...
Kotlin基础知识学习(三)
函数使用 基本用法 函数声明变化 如果函数是公开的,则public关键字可以省略。用fun关键字表示函数的定义。如果函数没有返回值可以不用声明。如果函数表示重载,直接在fun同一行用override修饰。函数参数格式是变量名:变量类型。函数参数允…...

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

店铺营业状态设置(day05)
Redis入门 Redis简介 Redis 是一个基于内存的 key-value 结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件。 Redis是一个基于内存的 key-value 结构数据库。 主要特点: 1、基于内存存储,读写性能高 2、适合存储热点数据(热点…...

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

快手SDK接入错误处理经验总结(WebGL方案)
1、打包时提示Assets\WebGLTemplates\ks路径下未找到Index.html文件错误 处理方法:直接使用Unity默认模板下的Index.html文件即可 文件所在路径:Unity安装路径\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\WebGLTemplates\Default 参考图&a…...

C语言 for 循环:解谜数学,玩转生活!
放在最前面的 🎈 🎈 我的CSDN主页:OTWOL的主页,欢迎!!!👋🏼👋🏼 🎉🎉我的C语言初阶合集:C语言初阶合集,希望能…...
Node.js 与 JavaScript 是什么关系
JavaScript 是一种编程语言,而 Node.js 是 JavaScript 的一个运行环境,它们在不同的环境中使用,具有一些共同的语言基础,但也有各自独特的 API 和模块,共同推动着 JavaScript 在前后端开发中的广泛应用。 一、基础语言…...

Java 大视界 -- Java 大数据性能监控与调优:全链路性能分析与优化(十五)
💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...

深入Spring Boot:自定义Starter开发与实践
引言 Spring Boot通过其强大的自动配置机制和丰富的Starter模块,极大地简化了Spring应用的开发过程。Starter模块封装了一组相关的依赖和配置,使得开发者可以通过简单的依赖引入,快速启用特定的功能。然而,除了使用Spring Boot提…...
React 中hooks之useTransition使用总结
目录 概述基本用法使用场景最佳实践注意事项 概述 什么是 useTransition? useTransition 是 React 18 引入的新 Hook,用于标记非紧急的状态更新。它允许组件在状态转换期间保持响应,通过将某些更新标记为"过渡"来推迟它们的渲染。 主要特…...

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

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...

排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...