对双色球结果预测的一次无聊的尝试

2023-11-01 06:30

本文主要是介绍对双色球结果预测的一次无聊的尝试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天晚上突然脑子不知怎么的,本来正在人工给12306验证码做打标工作,突然想看看双色球每期的开奖结果是否有规律

从这里下载从03年到今年的每期双色球开奖结果

用t-SNE降维到3维打印出来看看

似乎并没有什么规律

准备用线性回归来拟合一个模型,马上就有一个问题,对于双色球预测,自变量取什么?这是个非常复杂的问题了,而且可能是无解的问题,因为如果双色球是完全的独立随机事件,那也就无法提取出自变量,自然也就没法提取特征空间,这里姑且用开奖期号作为自变量特征,用结果(6维的红球结果,1维的蓝球结果)作为label

# -*- coding: utf-8 -*-import os
import numpy as np
import matplotlib.pyplot as plt
import pickle
from sklearn.manifold import TSNE
from mpl_toolkits.mplot3d import Axes3D
from sklearn import datasets, linear_model
from sklearn.metrics import mean_squared_error, r2_scoredef load_historydata():if not os.path.isfile("ssq.pkl"):ori_data = np.loadtxt('ssq.TXT', delimiter=' ', usecols=(0, 2, 3, 4, 5, 6, 7, 8), unpack=False)pickle.dump(ori_data, open("ssq.pkl", "w"))return ori_dataelse:ori_data = pickle.load(open("ssq.pkl", "r"))return ori_datadef load_tsnedata(ori_data):if not os.path.isfile("ssq_tsne.pkl"):tsne = TSNE(n_components=3, random_state=0)tsne_data = tsne.fit_transform(ori_data)pickle.dump(tsne_data, open("ssq_tsne.pkl", "w"))return tsne_dataelse:tsne_data = pickle.load(open("ssq_tsne.pkl", "r"))return tsne_datadef show_oridata(show_date):fig = plt.figure(1, figsize=(8, 6))ax = Axes3D(fig, elev=-150, azim=110)ax.scatter(show_date[:, 0], show_date[:, 1], show_date[:, 2], edgecolor='k', s=40)plt.show()if __name__ == '__main__':ori_data = load_historydata()np.random.shuffle(ori_data)# tsne_data = load_tsnedata(ori_data)# show_oridata(tsne_data)X_data = ori_data[:, 0].reshape(-1, 1)Y_data = ori_data[:, 1:]print "X_data[0]: ", X_data[0]print "Y_data[0]: ", Y_data[0]# Split the data into training/testing setssplit_len = int(len(X_data) * 0.8)X_train = X_data[:split_len]X_test = X_data[split_len:]print "X_train"print X_train# Split the targets into training/testing setsy_train = Y_data[:split_len]y_test = Y_data[split_len:]print "y_train"print y_train# Create linear regression objectregr = linear_model.LinearRegression()# Train the model using the training setsregr.fit(X_train, y_train)# Make predictions using the testing set#y_pred = regr.predict(X_train).round()y_pred = regr.predict(X_test).round()print "y_pred"print y_predprint "y_pred distinct"y_pred_cache = list()for line in y_pred:line = list(line)if line not in y_pred_cache:y_pred_cache.append(line)for line in y_pred_cache:print line# 预测的准确度print "Prediction accurate: {0}%".format(np.mean(X_test == y_pred) * 100)

线性回归的预测结果如下

y_pred distinct
[5.0, 9.0, 14.0, 19.0, 24.0, 29.0, 9.0]
[5.0, 10.0, 15.0, 19.0, 24.0, 29.0, 9.0]
[5.0, 10.0, 14.0, 19.0, 24.0, 29.0, 9.0]

模型对所有的training set的每一条预测结果都相同,这说明,对于开奖期号来说,开奖结果是一个完全随机的事件

如果考虑每期和每期之间可能有关联性,可以考虑试试用RNN来训练,输入依然是开奖期号

但是反过来也给了我一个启示,在进行机器学习项目的时候,如果train或者test的结果不好或者不符合预期,不要急于去调参数或者换模型,更应该回过头来想想自己给模型输入的特征是否确实隐含了规律,算法是无法对随机事件进行预测的,只有原始数据中确实隐含了规律,使用适当的模型才能从中抽象出模型,特征工程是非常关键的,也是需要长久思考的

Relevant Link:

https://datachart.500.com/ssq/history/history.shtml
http://blog.csdn.net/supperman_009/article/details/40623503
https://zhuanlan.zhihu.com/p/26341086
http://ssq.50018.com/zou-shi-tu/default.aspx
http://www.sohu.com/a/134552307_116235

转载于:https://www.cnblogs.com/LittleHann/p/7518410.html

这篇关于对双色球结果预测的一次无聊的尝试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/321107

相关文章

(function() {})();只执行一次

测试例子: var xx = (function() {     (function() { alert(9) })(); alert(10)     return "yyyy";  })(); 调用: alert(xx); 在调用的时候,你会发现只弹出"yyyy"信息,并不见弹出"10"的信息!这也就是说,这个匿名函数只在立即调用的时候执行一次,这时它已经赋予了给xx变量,也就是只是

flume系列之:记录一次flume agent进程被异常oom kill -9的原因定位

flume系列之:记录一次flume agent进程被异常oom kill -9的原因定位 一、背景二、定位问题三、解决方法 一、背景 flume系列之:定位flume没有关闭某个时间点生成的tmp文件的原因,并制定解决方案在博主上面这篇文章的基础上,在机器内存、cpu资源、flume agent资源都足够的情况下,flume agent又出现了tmp文件无法关闭的情况 二、

jmeter之仅一次控制器

仅一次控制器作用: 不管线程组设置多少次循环,它下面的组件都只会执行一次 Tips:很多情况下需要登录才能访问其他接口,比如:商品列表、添加商品到购物车、购物车列表等,在多场景下,登录只需要1次,我们期望的是重复执行登陆后面的接口来做压测,这就和事务相关,例如 事务1: 登录—>添加购物车 事务2: 登录—>购物车列表 事务3: 登录—>商品列表—>添加购物车 … 一、仅一次控制器案例 在

一次生产环境大量CLOSE_WAIT导致服务无法访问的定位过程

1.症状 生产环境的一个服务突然无法访问,服务的交互过程如下所示: 所有的请求都是通过网关进入,之后分发到后端服务。 现在的情况是用户服务无法访问商旅服务,网关有大量java.net.SocketTimeoutException: Read timed out报错日志,商旅服务也不断有日志打印,大多是回调和定时任务日志,所以故障点在网关和商旅服务,大概率是商旅服务无法访问导致网关超时。 后

关于一次速度优化的往事

来自:hfghfghfg, 时间:2003-11-13 16:32, ID:2292221你最初的代码 Button1 34540毫秒 5638毫秒  Button2 我的代码 这个不是重点,重点是这个  来自:hfghfghfg, 时间:2003-11-13 16:54, ID:22923085528毫秒 不会吧,我是赛杨1.1G  128M内存  w2000, delphi6  128M

Tensorflow lstm实现的小说撰写预测

最近,在研究深度学习方面的知识,结合Tensorflow,完成了基于lstm的小说预测程序demo。 lstm是改进的RNN,具有长期记忆功能,相对于RNN,增加了多个门来控制输入与输出。原理方面的知识网上很多,在此,我只是将我短暂学习的tensorflow写一个预测小说的demo,如果有错误,还望大家指出。 1、将小说进行分词,去除空格,建立词汇表与id的字典,生成初始输入模型的x与y d

概率DP (由一道绿题引起的若干问题。目前为一些老题,蒟蒻的尝试学习1.0)

概率DP: 利用动态规划去解决 概率 期望 的题目。 概率DP 求概率(采用顺推) 从 初始状态推向结果,同一般的DP类似,只是经历了概率论知识的包装。 老题: 添加链接描述 题意: 袋子里有w只白鼠,b只黑鼠,A和B轮流从袋子里抓,谁先抓到白色谁就赢。A每次随机抓一只,B每次随机 抓完一只后 会有另外一只随机老鼠跑出来。如果两个人都没有抓到白色,那么B赢。A先抓,问A赢得概率。 w b 均在

临床基础两手抓!这个12+神经网络模型太贪了,免疫治疗预测、通路重要性、基因重要性、通路交互作用性全部拿下!

生信碱移 IRnet介绍 用于预测病人免疫治疗反应类型的生物过程嵌入神经网络,提供通路、通路交互、基因重要性的多重可解释性评估。 临床实践中常常遇到许多复杂的问题,常见的两种是: 二分类或多分类:预测患者对治疗有无耐受(二分类)、判断患者的疾病分级(多分类); 连续数值的预测:预测癌症病人的风险、预测患者的白细胞数值水平; 尽管传统的机器学习提供了高效的建模预测与初步的特征重

一次关于生产环境服务无故宕机的排查过程

故事的开始 这个故事是在一年之前,当时我们的系统运行在客户的k8s环境上。然后很神奇的是每个月底我们都会服务宕机,当然我们开启了多个实例。当时的容器线条就像心跳图一样(或许有些描述的不太准确,我没有找到当时那个像心电图一样的容器资源监控图)。 第一次的排查 当时我们还是很有信心去解决这个问题的。由于每个月的月底都是业务使用的高峰时段,也就是说,从表象上来看,qps一高,容器就挂。 业务日

结合Python与GUI实现比赛预测与游戏数据分析

在现代软件开发中,用户界面设计和数据处理紧密结合,以提升用户体验和功能性。本篇博客将基于Python代码和相关数据分析进行讨论,尤其是如何通过PyQt5等图形界面库实现交互式功能。同时,我们将探讨如何通过嵌入式预测模型为用户提供赛果预测服务。 本文的主要内容包括: 基于PyQt5的图形用户界面设计。结合数据进行比赛预测。文件处理和数据分析流程。 1. PyQt5 图形用户界面设计