目录

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

一、数据标准化

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

结果如下:

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

三、后续

中了五块钱

【纯属娱乐】随机森林预测双色球相关推荐

  1. RandomForest:随机森林预测生物标记biomarker——回归

    关于随机森林的简介和应用理论,请阅读之前分享的文章: 一文读懂随机森林在微生态中的应用 关于随机森林进行分类的入门实战,请阅读 之前分享的 - <RandomForest:随机森林预测生物标记b ...

  2. python在Scikit-learn中用决策树和随机森林预测NBA获胜者

    在本文中,我们将以Scikit-learn的决策树和随机森林预测NBA获胜者.美国国家篮球协会(NBA)是北美主要的男子职业篮球联赛,被广泛认为是首屈一指的男子职业篮球联赛在世界上.它有30个团队(美 ...

  3. Python使用随机森林预测泰坦尼克号生存

    tags: 随机森林 kaggle 数据挖掘 categories: 数据挖掘 mathjax: true 文章目录 前言: 1 数据预处理 1.1 读入数据 1.2 训练集与数据集 1.2.1 查看 ...

  4. 随机森林预测财务报表是否舞弊

    随机森林预测财务报表是否舞弊 爬取财务报表 设置文件保存在c盘eastmoney文件夹下 1 设置表格爬取时期 2 设置表格爬取起始页数 3 表格正式爬取 写入表头 方法1 借助csv包,最常用 数据 ...

  5. Python随机森林预测含水率

    Python随机森林预测含水率 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn. ...

  6. python在Scikit-learn中用决策树和随机森林预测NBA获胜者 1

    最近我们被要求撰写关于预测NBA的研究报告,包括一些图形和统计输出.我们将以Scikit-learn的决策树和随机森林预测NBA获胜者.美国国家篮球协会(NBA)是北美主要的男子职业篮球联赛,被广泛认 ...

  7. 在jupytor中运行随机森林预测泰坦尼克旅客生存情况

    在jupytor中运行随机森林预测泰坦尼克旅客生存情况 数据集链接链接: link. 百度网盘:链接: https://pan.baidu.com/s/1_pQ-3iG4dr0hrvU_5hYUtg ...

  8. RandomForest:随机森林预测生物标记biomarker——分类

    随机森林简介 R randomForest包 安装与加载 分类Classification 分类结果主坐轴分析 随机选取2/3预测,1/3验证 无监督分类 分层抽样 Reference 猜你喜欢 写在 ...

  9. 独家 | 用随机森林预测“美版拼多多”商品销量

    作者:Andrew Udell 翻译:王闯(Chuck) 校对:廖倩颖 本文约2200字,建议阅读8分钟 作者基于Kaggle上的Wish数据集,用Python演示了随机森林回归预测商品销量的方法,对 ...

最新文章

  1. 记一次腾讯霸面---前端
  2. VBS基础篇 - 运算符(1) - 运算符优先级
  3. 运筹学的课程笔记 markov decision process
  4. Spring手动回滚事务
  5. qt开发环境 - 丁林松教程,丑陋的计算器
  6. tensorflow:Multiple GPUs
  7. oidc_使用Java EE和OIDC构建Java REST API
  8. java实现layui静态表格分页,layui——数据表格分页实例
  9. linux区别sata和sas,SAS与SATA之间的异同分析
  10. sharepoint开发流水账--sharepoint弹出窗体
  11. 42. netcat
  12. 《人生只有一次,去做自己喜欢的事》读书笔记
  13. 明码(C语言)——罡罡同学
  14. Opencv识别车牌
  15. Linux学习2.0(非markdown编辑)
  16. 苹果手机充值显示服务器异常,球球大作战iOS会员充值异常解决办法
  17. cf 678E - Another Sith Tournament 【状压dp】
  18. 渗透测试笔记下载YYDS
  19. 《SCIENCE》公布的125个科学前沿问题
  20. geek_Great Geek Gadget赠品抓斗袋,呃,拍卖

热门文章

  1. swift 简单封装的一个五星评分器
  2. 天津公务员 计算机水平,天津公务员考试报考这6类职位,上岸几率更大!
  3. linux用rpm升级rpm包,使用RPM升级软件
  4. 单工、半双工和全双工通信的区别
  5. 西门子免授权数控机床采集方案
  6. linux mysql 修改表名_Linux下mysql怎么设置表名?
  7. 前端机器学习--识别人脸在脸颊上画草莓
  8. PCL 点读机,哪里不会查哪里!
  9. 实现sohu社区′只看楼主′的功能,抓取连载帖子中楼主的所有帖子
  10. Android 13 更新内容(开发需知)