【纯属娱乐】随机森林预测双色球

目录

  • 一、数据标准化
  • 二、预测代码
  • 三、后续


一、数据标准化

首先,我们需要对原始数据进行处理,将其转换为可用于机器学习的格式。我们可以将开奖号码中的红球和蓝球分开,将其转换为独热编码,然后将其与期数一起作为特征输入到机器学习模型中。
这里的数据集是我找到的2017年至今的数据集

import re
import csv# 定义正则表达式
pattern = re.compile(r'(\d{7})双色球开机号码:红球:(\d{2}),(\d{2}),(\d{2}),(\d{2}),(\d{2}),(\d{2}) 蓝球:(\d{2}) 开奖号:(\d{2}) (\d{2}) (\d{2}) (\d{2}) (\d{2}) (\d{2}) \+ (\d{2})')# 读取 test.txt 文件
with open('test.txt', 'r',encoding="utf-8") as f:lines = f.readlines()# 初始化数据列表
data = [['期数', '红球1', '红球2', '红球3', '红球4', '红球5', '红球6', '蓝球', '开奖红球1','开奖红球2', '开奖红球3', '开奖红球4', '开奖红球5', '开奖红球6', '开奖蓝球']]# 解析每一行数据
for line in lines:match = pattern.match(line)if match:# 提取匹配结果qishu = match.group(1)shijihongqiu = [match.group(i) for i in range(2, 8)]shijilanqiu = match.group(8)kaijianghongqiu = [match.group(i) for i in range(9, 15)]kaijianglanqiu = match.group(15)# 将提取到的数据添加到 data 列表中data.append([qishu] + shijihongqiu + [shijilanqiu] + kaijianghongqiu + [kaijianglanqiu])# 将数据写入 csv 文件
with open('lottery.csv', 'w', newline='') as f:writer = csv.writer(f)writer.writerows(data)

二、预测代码

接下来,我们需要选择一个机器学习模型进行预测。由于该数据集中没有常规的y参数,因此我们可以采用无监督学习的方法,对球号之间的关系进行建模,然后根据建好的模型进行预测。

常见的无监督学习算法包括聚类和降维算法。聚类算法可以将数据集中的数据分为不同的组别,每个组别中的数据具有相似的特征。降维算法可以将高维数据降低到低维空间,以便更好地进行可视化和处理。

在这里,我们可以采用聚类算法,例如k-means算法,来将球号进行聚类。具体步骤如下:

读取数据集,将红球1到红球6的6个特征作为X。
对X进行标准化处理,使得每个特征的均值为0,标准差为1。
使用k-means算法对X进行聚类,将样本划分为k个不同的组别。
对于2023048期的数据,提取红球1到红球6的6个特征作为X,并进行标准化处理。
将2023048期的数据输入到k-means模型中,预测它所属的组别。
根据模型预测出的组别,从训练集中找到同一组别中的数据,并计算这些数据中蓝球出现的频率,将频率最高的蓝球作为预测结果。
但是这里并不使用聚类算法,因为我发现写到最后开机号码是提前给出来的,所以我们用开机号码和开奖号码进行分析。

使用随机森林算法进行预测,下面是Python代码实现:

import numpy as np
import pandas as pd
from sklearn.ensemble import RandomForestRegressor# 读取数据
data = pd.read_csv('lottery.csv',encoding="gbk")# 提取特征和标签
X = data.drop(['期数', '开奖红球1', '开奖红球2', '开奖红球3', '开奖红球4', '开奖红球5', '开奖红球6', '开奖蓝球'], axis=1)
y = data[['开奖红球1', '开奖红球2', '开奖红球3', '开奖红球4', '开奖红球5', '开奖红球6', '开奖蓝球']]# 划分训练集和测试集
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 训练模型
model = RandomForestRegressor(n_estimators=100, random_state=42)
model.fit(X_train, y_train)# 在测试集上评估模型
from sklearn.metrics import mean_squared_error
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print('Mean squared error:', mse)# 使用模型进行预测
predict_data = pd.DataFrame({'红球1': [2],'红球2': [10],'红球3': [13],'红球4': [17],'红球5': [22],'红球6': [26],'蓝球': [1]
})
predict_result = model.predict(predict_data)
rounded_result = np.round(predict_result)print('预测结果:', rounded_result)

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

(注:本代码纯属娱乐,投资有风险)

三、后续

中了五块钱
在这里插入图片描述

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

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

相关文章

Matlab 马尔可夫链预测双色球

Matlab 马尔可夫链预测双色球 前言:彩票是一个坑,千万不要往里面跳。 总是想总是想一夜暴富,所以利用业余时间有在研究彩票,偶尔遇见了这个经典的数学预测算法的思路以及代码,研究了两个月,想和大家分享一…

【马克思主义】马克思200周年诞辰

马克思主义——掌握唯物辩证法这一看家本领,要学会运用科学的方法论。一是坚持矛盾分析方法。通过分析和研究社会内部矛盾运动过程,理性客观认识社会变化。二是坚持过程分析方法。新陈代谢是社会发展的普遍规律,每一历史过程均包含诸多阶段。…

马克思基本原理概论 单元综合测试(二)

资本主义商品生产过程的特征是价值增值过程两种商品可以按一定比例相互交换的原因,在于它们在生产中都耗费了一般的人类劳动支付工资的货币执行的是货币的支付手段职能在私有制经济中价值规律的作用会导致小商品生产者两极分化决定资本主义社会中劳动力的价值因素一…

马克思主义的简答题

马克思主义的含义: 马克思主义是由马克思,恩格斯创立的,为它们的后继者所发展,以批判资本主义,建设社会主义和实现共产主义为目标的科学理论体系,是关于无产阶级和人类解放的科学 三大理论体系:…

怎么取名都不队-Alpha阶段项目展示

一、项目亮点 项目的典型应用场景 典型应用场景1-个人开发尝试 应用场景案例实现链接:QuickStart:跟我一起来部署第一个函数吧 守好嘉今年18岁了,高考结束后如愿进入北航信息类,以计算机学院为目标的TA最近在自学Python后端,希…

foxmail错误信息:501 请登录exmail.qq.com修改密码

登录网页版腾讯企业邮箱,修改邮箱密码即可。 转载于:https://www.cnblogs.com/bignine/p/10095187.html

不需要邮箱 修改Gitlab账号密码(亲测可用)

突然忘记了gitlab的登陆用户密码,还在内网! 不要着急, 通过后台修改密码! 1. 进入gitlab 后台控制台,等到打开ruby控制界面,有点慢不要着急,也可去掉 sudo登入,但可能会失败(笔者就失败了)! sudo gitlab-rails console production 2 .登入…

Outlook添加新浪邮箱时的配置细节——登录密码

Outlook添加新浪邮箱时的配置细节——登录密码 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、完整配置流程1.确认邮箱账号是否开通POP/IMAP/SMTP服务2.输入某一电子邮箱地址3.选择账户类型4.根据账户类型…

完美邮箱(@88.com/@111.com/email.cn):专用密码登录

完美邮箱该怎么在第三方客户客户端上进行登录使用?完美邮箱包含以下几个域名: 88.com/111.com/email.cn,出于安全方面的考虑,完美的邮局限制了密码直接,在第三方客户端登录时(如网易邮箱大师/dreammail/畅邮/Thunderbird等邮件客…

email 发送邮箱修改密码

首先是 index.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml" xml:lang"en"> <h…

foxmail 企业邮箱密码修改

废了好大劲&#xff01;&#xff01;&#xff01; 登录腾讯企业邮 exmail.qq.com/login 如下图&#xff1a;

PGP加密解密QQ邮箱邮件

今天学习了PGP加密解密QQ邮箱邮件的方法&#xff0c;分享一下&#x1f601;&#x1f601;&#x1f601;&#x1f601; 涉及软件&#xff1a;PGP(PGP Desktop)、Outlook(office的) 加密&#xff1a; 第一步&#xff1a;安装PGP软件&#x1f602;&#x1f602;&#x1f602; 具体…

outlook 设置POP3/IMAP/SMTP服务 (账号密码-授权码)发送、获取授权码

1. 说明 三方应用账号密码连接邮箱时&#xff0c;此时的密码并不是真正的邮箱密码&#xff0c;而是授权码。授权码需要去对应的邮箱设置中开通&#xff0c;此处是outlook 的授权码获取方式2. 准备工作 2.1 申请邮箱 直接访问地址 https://www.microsoft.com/zh-cn/microsoft-…

webmail邮箱(webmail邮箱密码修改)

万网邮箱如何取消邮箱webmail的验证码功能 您需要以postmaster身份登陆企业邮箱的webmail&#xff0c;顺序点击“域管理”>“标志定制”,在选项“是否显示图形验证码”中进行设置。 如果存在设置无效的情况&#xff0c;请您返回“标志定制”栏目&#xff0c;检查首页面定制…

outlook2016邮箱怎么修改密码

打开网页版的邮箱 右上角有设置按钮 点击设置 选择“我的账户” 向下拉选择 “更改您的密码”

开启微软 Outlook 邮箱 POP, IMAP, SMTP 服务和获取服务密码(授权码)

微软 Outlook 邮箱各种服务详细信息 服务类型服务器地址端口加密方法POPoutlook.office365.com995TLSIMAPoutlook.office365.com993TLSSMTPsmtp.office365.com587STARTTLS 然而仅仅有以上信息还不够&#xff0c;需要获取服务密码(授权码)才能够使用 POP, IMAP, SMTP 这三种服务…

chatgpt赋能python:Python表格制作教程

Python表格制作教程 在今天的数字时代&#xff0c;数据是至关重要的。在各种领域的数据分析和科学研究中&#xff0c;表格是最常用的一种数据呈现形式。Python是一种功能强大的编程语言&#xff0c;它具有广泛的应用范围&#xff0c;其中一个应用就是制作数据表格。通过Python…

用chatgpt实现 java导出excel复杂表。

记录一次使用chatgpt解决实际问题的&#xff0c;需求是在页面添加一个订单导出excel的功能&#xff0c;订单编号、订单明细&#xff0c;相同订单编号合并单元格&#xff0c;模板如下 表头表尾不用说&#xff0c; 主要是表格内容部分&#xff0c;左边是订单编号&#xff0c;右边…

chatgpt赋能python:如何用Python制作表格

如何用Python制作表格 在编写数据分析报告或者制作科研论文时&#xff0c;经常需要使用表格来展示数据或者统计分析结果。在传统的Word或Excel软件中制作表格虽然简单易用&#xff0c;但是在大量的数据处理和自动化处理方面往往需要耗费大量的时间和精力。而Python作为一种高效…

小米辟谣武汉总部35岁以上员工只保留10%;丰田致歉!200万车主车辆数据遭泄露;jQuery 3.7.0 发布|极客头条...

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&#…