双色球 python

对双色球数据探索

数据准备
爬取双色球的数据

# -*- coding: utf-8 -*-
import os
import os.path
import sys
reload(sys)
sys.setdefaultencoding("utf-8")  #开奖日期中的字符需要引入
import urllib2
from bs4 import BeautifulSoup# 创建/打开一个文件放数据
def  fetchLottery():if os.path.exists("lottery.csv"):os.remove("lottery.csv")f = open("lottery.csv", "a")for i in range(3,16):print("正在获取"+"{:0>2d}".format(i)+"年数据")url = "http://www.lecai.com/lottery/draw/list/50?type=range_date&start=20"+"{:0>2d}".format(i)+"-01-01&end=20"+"{:0>2d}".format(i)+"-12-31"page = urllib2.urlopen(url)                                 # 打开目标urlsoup = BeautifulSoup(page,"html.parser")# 格式化标签#print(soup.find_all(attrs={"class":"historylist"}))foundAllTbody = soup.findAll(attrs={"class":"balls"})foundDate = soup.findAll("tbody")[0]num = 1if(foundAllTbody):for foundBalls in foundAllTbody[0:]:    foundAllTr = foundBalls.findAll("em")if(foundAllTr):ballStr = ""for foundTd in foundAllTr[0:]:if(foundTd):ballStr += ","ballStr += foundTd.string#print(foundTd.string)  date = foundDate.findAll("td")[(num-1)*10+num].string   #开奖日期print type(date)f.write(date +','+ ballStr+'\n')print(foundDate.findAll("td")[(num-1)*10+num].string)num = num + 1    print "数据抓取完成"f.close()fetchLottery()
%matplotlib inline
import pandas as pd
from pandas import DataFrame
lottery=pd.read_csv('lottery.csv')
lottery.index=[date[:-9] for date in lottery.date]
lottery=lottery.drop(['date'],axis=1)
lottery.index.name='date'lottery.to_csv('lottery_change.csv')
lottery.head(10)
转换成pandas.DataFrame格式
R1R2R3R4R5R6B
date
2003-12-2818192126273316
2003-12-253102122243312
2003-12-212345242813
2003-12-185121618263013
2003-12-14141112192714
2003-12-112671017333
2003-12-0713141826281
2003-12-047171819303114
2003-11-3012142629307
2003-11-279202425283010
lottery.hist()
lottery.shape
(1899, 7)

进行简单的数据探索,可以看书B{蓝色球}的分布让人很是蛋疼,然而R1-R6{红色球}的数据分布是傻子都能看的出来,R1一般比较小,R6一般分布在25-33之间。

这里写图片描述

lottery.ix[:,:'B'].sum(axis=1).hist()
<matplotlib.axes._subplots.AxesSubplot at 0x114319e8>

B的R1-R6之和的数据分布,看着貌似还是有点小规律,基本上分布在90-110之间。可是只又有什么卵用—-和下面随机选择的基本上算一致的(随机选择若是按照概率生成的话也许结果更有说服力)

这里写图片描述

import random
from pandas import DataFrame
seed=range(1,33)
random_select=[]
for i in range(1899):lotter=random.sample(seed,6)random_select.append(lotter)
sns.distplot(DataFrame(random_select).sum(axis=1))

这里写图片描述

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
sns.set_style('darkgrid')
g=sns.pairplot(lottery)
这是R1的概率密度分布图到10基本上到达0.9.
ax=sns.kdeplot(lottery.R1,shade=True,color='r',cumulative=True)

这里写图片描述

ax=sns.kdeplot(lottery.R2,shade=True,color='r',cumulative=True)

这是R2的概率密度分布图

这里写图片描述

sns.jointplot('R1','R4',data=lottery,kind='reg')
<seaborn.axisgrid.JointGrid at 0x2f0d2da0>

这里写图片描述

ax=sns.kdeplot(lottery.ix[:,:'B'].sum(axis=1))

这里写图片描述

ax=sns.kdeplot(lottery.ix[:,-3:-1].sum(axis=1))

这里写图片描述

ax = sns.distplot(lottery.ix[:,-3:-1].sum(axis=1))

观察尾和

这里写图片描述

lottery_sort=pd.read_csv('lottery_change.csv',index_col=0,parse_dates=0)
roll_mean=pd.rolling_mean(lottery_sort,20).dropna()
import  matplotlib.pyplot as pltfor i in range(1,7):plt.subplot(230+i)a='R'+str(i)sns.distplot(roll_mean[a])

观察R1-R6的概率密度分布图

这里写图片描述

sns.distplot(roll_mean['R1'])
<matplotlib.axes._subplots.AxesSubplot at 0x2bf19da0>

这里写图片描述

sns.distplot(lottery.R1)
<matplotlib.axes._subplots.AxesSubplot at 0x3000f9e8>

这里写图片描述

import numpy as np
tim=np.zeros((1899,50))
lottery_sort['BL']=lottery_sort.B.values+33
lottery_sort=lottery_sort.drop('B',axis=1)
loc=lottery_sort.values
lottery_sort.head()
R1R2R3R4R5R6BL
date
2003-02-2310111213262844
2003-02-27491920212645
2003-03-02171023283249
2003-03-0646710132536
2003-03-09461517303149

运用文本的分类的模式进行计算:

  • 将矩阵转换成词袋模型 就是[1,3,6]转换成[1,0,1,0,0,1]的形式
  • 计算每个feature出现的概率,或者设置窗口观察出现概率的变化
  • 简单的差分或者也可以采用其他你认为好的方法,目前所做的只能增加你的机会

窗口为33 R1概率的变化率,你会发现有一定的规律,对啥号有一定的帮助。

这里写图片描述

for i in range(1899):tim[i,loc[i]]=1
from pandas import DataFrame
# sns.jointplot(np.arange(34),tim.sum(axis=0)/1899.0,kind='reg')
def prob(x):prom=x.sum()/float(x.shape[0])return prom
for window in range(10,12,2):print "Window=:",windowprobBR=DataFrame(pd.rolling_apply(tim,window,prob),index=lottery_sort.index).dropna().diff(1)choose_blue=[]for i in range(probBR.shape[0]):max6=probBR.ix[i,:33].argsort()[-6:].tolist()maxB=probBR.ix[i,33:].argmax()choose_blue.append(sorted(max6)+[maxB])# print choose_blueprob33=DataFrame(choose_blue,index=probBR.index,columns=['R1','R2','R3','R4','R5','R6','BL']).shift(1).dropna()eq=(lottery_sort - prob33).ix[:,:-1].dropna()eq_count=eq[eq==0].count(axis=1)cnt=0.0print eqfor i in eq[eq==0].count(axis=1):if i>4:cnt+=1.0print cnt/float(eq_count.shape[0])#     scoring=eq_count.sum()/eq_count.shape[0]
#     print scoring
score
window_size
100.389095
120.409115
140.401592
160.381306
180.408825
200.392762
220.400639
240.394667
260.389749
280.373597
300.405029
320.395822
340.394638
360.395062
380.397098
400.401291
420.396338
440.400000
460.384242
480.416532
500.395890
520.419058
540.408672
560.383071
580.405215
600.418162
620.384322
640.395640
660.395526
680.401966
700.412794
720.399562
740.398356
760.419089
780.388797
800.391974
820.389653
840.403857
860.396580
880.419658
900.364290
920.397344
940.396676
960.382141
980.408662
lottery_sort.shift(1)
R1R2R3R4R5R6BL
date
2003-02-23NaNNaNNaNNaNNaNNaNNaN
2003-02-2710111213262844
2003-03-02491920212645
2003-03-06171023283249
2003-03-0946710132536
2003-03-13461517303149
2003-03-16131021262739
2003-03-20191921232640
2003-03-2358914172341
2003-03-27591820223042
2003-03-3012813172446
2003-04-03451112303248
2003-04-062121617273045
2003-04-108131721233245
2003-04-133578213135
2003-04-174111925263246
2003-04-2011172830313339
2003-04-24581823253139
2003-04-275161920252846
2003-05-01481213163342
2003-05-047102526273237
2003-05-0814151825263034
2003-05-11271112143241
2003-05-151102022263135
2003-05-18271517223047
2003-05-22151113142745
2003-05-258131526293149
2003-05-291111417272848
2003-06-016131620283240
2003-06-05271526293243
2015-10-2523512182734
2015-10-275132227303343
2015-10-2910111520232945
2015-11-017101922273339
2015-11-0313811222839
2015-11-05581116182737
2015-11-086141516172243
2015-11-1010121319222636
2015-11-12351128303334
2015-11-15231320222448
2015-11-17251419273137
2015-11-191121418263240
2015-11-22251223282934
2015-11-2414222327283145
2015-11-2612816192444
2015-11-291101318252742
2015-12-016202829303145
2015-12-03381925272835
2015-12-0613171920222544
2015-12-0813151920213237
2015-12-1014715283249
2015-12-13781519202446
2015-12-1516172128303248
2015-12-17891623243038
2015-12-209131422262740
2015-12-229102021223342
2015-12-2413811293146
2015-12-2756823313244
2015-12-2911181921293245
2015-12-318111522272936

1899 rows × 7 columns

import itertools  
list(itertools.permutations([1,2,3,4],2))   #排列
list(itertools.combinations([1,2,3,4],2))    #组合

总结

只是做了一下简单的数据探索,通过数据来看可预测性不强,但是可以通过转换的思路去理解数据(以窗口33为例):

  • 建立窗口,通过观察前后窗口概率的变化(差分)可以得出某个数字出现的概率的变化趋势(分析过中国的股市,变化的规律跟彩票差不多。。。。。不过有些基本面的信息做支撑)
  • 可以贝叶斯的思想模型,从第一部得出窗口概率,对33个数据的组合中找出最有可能出现的组合(双色球的组选模式)
  • 马尔科夫模型大部分是用在文本分析上面,可以用于彩票的预测
  • 神经网络模型入度6出度为6
    (11选5,10分钟开一次奖能更好的验证方法)
    以上只是谈疼的思考,若有不当之处,多批评。。。

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

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

相关文章

2023年7月1日起,五险一金缴费基数上调,到手工资变少了!

上一篇&#xff1a;被裁员了&#xff0c;月底走人拿n1&#xff0c;多待一个月拿n&#xff0c;该怎么选&#xff1f; 今天给大家盘点了一下各省市2023年最新的社保、公积金缴费基数。 2023社保缴费基数定了 一、上海 2023年6月28日&#xff0c;上海市人社局官方微信发布了《本市…

chatgpt赋能python:PythonUp:优秀的Python教育平台

Python Up: 优秀的Python教育平台 Python学习的重要性 随着大数据、人工智能等技术的蓬勃发展&#xff0c;Python作为一种可读性强、代码简洁、可扩展性好的编程语言&#xff0c;已经成为数据科学领域中最受欢迎的编程语言之一。因此&#xff0c;Python学习已成为现在最流行的…

chatgpt赋能Python-python_his

Python HIS: 基于Python的医院信息系统 作为现代医院管理的重要组成部分&#xff0c;医院信息系统(HIS)的重要性不言而喻。通过使用HIS&#xff0c;医院管理人员可以更加高效地处理管理任务&#xff0c;医疗人员可以更加便捷地记录、查看和互相交流患者信息&#xff0c;患者可…

抖音爆款脚本文案怎么写?写作时需要注意什么。

世上当然不会有这么简单的事情&#xff0c;虽然表面上看就是填一个表格&#xff0c;但是实际上有很多潜规则的要求&#xff0c;今天我们就主要讲讲我们在写脚本文案的时候&#xff0c;用的语言文字需要符合一个什么样的规则。其他的话我就不多说了&#xff0c;我们直接看案例&a…

云媒易推广:实体店铺抖音推广技巧分享

近两年&#xff0c;短视频和直播越来越火&#xff0c;除电商行业外&#xff0c;很多线下实体店也逐渐开始发展线上推广业务&#xff0c;意图通过抖音推广打开线上营销市场。但是&#xff0c;线上推广并不是一件简单的事情。那么&#xff0c;实体店铺究竟该怎么做抖音推广&#…

抖音的文案怎么做|成都聚华祥

要知道&#xff0c;开抖音直播不仅仅可以通过带货赚钱&#xff0c;但是还是有很多朋友不知道怎么去做&#xff0c;也在一定程度上花了很多时间&#xff0c;那么抖音的合拍带货是怎么样做的呢&#xff1f;跟着小编来看看吧&#xff01; 1.遵循选择的三个要素 广度&#xff1a;就…

PHP对接抖音开发平台接口

一、说明二、代码三、代码运行需知四、功能扩展五、接口调用需要注意的点六、接口文档中的 坑&#xff08;以订单列表接口为例&#xff09;1、请求参数、响应参数 代表的具体值不清晰2、页码从第0页开始&#xff08;这个属于需要注意的点&#xff09;3、金额 是元 还是 分&…

抖音怎么运营?分享个人抖音运营思路方案

抖音怎么运营&#xff1f; 符合这三点&#xff0c;你的视频很容易受欢迎&#xff0c;账号也很容易上升。她是如何做到这三点的&#xff1f; 1.让平台向您推荐更多流量。 2.让用户完全观看您的视频。 3.看完一段视频后&#xff0c;我想看下一个。 让平台向您推荐更多流量。 …

一篇文章带你了解抖音来客功能的使用方法和注意事项

抖音是近年来备受欢迎的社交媒体平台之一&#xff0c;其中的“来客”功能更是让许多人喜爱。那么什么是抖音来客呢&#xff1f;抖音来客是指在直播过程中&#xff0c;可以邀请其他抖音用户进行互动和参与&#xff0c;从而增加直播的热度和粉丝数量。下面不若与众科技就来介绍一…

抖音平台如何推广?代运营还是用优化系统

近年来&#xff0c;互联网进入下半场&#xff0c;移动端的新媒体抢到了流量风口&#xff0c;尤其是以抖音小红书为首的短视频平台深受关注。小马识途的客户开始通过抖音做推广、做宣传的企业越来越多&#xff0c;其中有一些公司已经尝到了抖音seo带来的甜头&#xff0c;加入抖音…

抖音上传视频(纯前端实现霸屏软件的功能)进店转发视频功能,详情搜索抖音霸屏软件

抖音霸屏软件 抖音霸屏介绍先来介绍一下吧&#xff0c;嫌啰嗦的可以直接跳转>>>思路分析 ↓ 抖音开发文档思路分析步骤 抖音霸屏介绍 先来介绍一下吧&#xff0c;嫌啰嗦的可以直接跳转>>>思路分析 ↓ 1.抖音同城霸屏&#xff1a;可控制所有扫码用户发布视频…

手把手教你接入抖音小程序发送模板消息通知

模板消息是指&#xff1a;按照一定的模板样式发送给用户的消息&#xff0c;顾名思义&#xff0c;它的内容必须限制在某一个模板框框内&#xff0c;只能做填空题&#xff0c;做不了主观题。 场景举例&#xff1a;用户A下了订单并交易成功&#xff0c;应该给该用户手机端下发一条…

关于抖音文案的重要性以及如何分享好的抖音文案,详情已附上

抖音文案是指在抖音平台上发布短视频时所配以的文字内容&#xff0c;它是短视频的重要补充和补充说明。接下来&#xff0c;不若与众科技将详细介绍抖音文案的重要性以及如何分享好的抖音文案。 一、抖音文案的重要性 1.提高视频的关注度 好的抖音文案可以让视频更加生动有趣&…

关键词推广怎么做比较好?抖音宣传做关键词推广有哪些好的方法

一、抖音宣传关键词推广的基本原则 关键词的选择要合理&#xff1a;选择的关键词要尽量针对性强、覆盖面广&#xff0c;且要具有较高的搜索量和热度&#xff0c;能够更好的满足用户的需求&#xff1b; 关键词的定位要准确&#xff1a;在抖音宣传关键词推广中&#xff0c;根据关…

对接微信支付接口

SpringBoot中对接微信支付接口 1.微信支付开发文档 https://pay.weixin.qq.com/wiki/doc/api/index.html 1.准备工作&#xff1a; 在微信上申请服务号类型的公众号&#xff0c;从公众号获取以下数据 appid&#xff1a;微信公众账号或开放平台APP的唯一标识 mch_id&#xf…

手把手教你如何在Java在Excel中进行数据分析

摘要&#xff1a;本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 前一段时间淘宝出了一个“淘宝人生”的模块&#xff0c;可以看从注册淘宝账号至今的消…

文心一格:文心一格发布会图文摘要及与ChatGPT对此分析

文章目录 [toc]简介1.文学创作二、商业文案创作三、数理逻辑推算四、中文理解五、[多模态](https://so.csdn.net/so/search?q多模态&spm1001.2101.3001.7020)生成六、原理分析七、社会反响小结 简介 GPT-4发布一天之后&#xff0c;压力全部给到百度这边。就在刚刚&#x…

​​​​​​​NLP之TEA:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)

NLP之TEA&#xff1a;基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分) 目录 输出结果 设计思路 相关资料 1、关于代码 2、关于数据集 关于留言 1、留言内容的注意事项 2、如何留言&#xff1f; 2.1、第一种方法——在对应的博客下留言 2.2、备用第二…

Linux输密码不显示

Linux是一个安全性比较强的的操作系统&#xff0c;所以输入密码的时候是不会显示的&#xff0c;但是它会记忆用户输入的密码&#xff0c;所以一般还是不要把密码设置的太复杂了。不然

Git 命令行账号密码输入错误解决方法

场景&#xff1a;git操作仓库&#xff0c;第一次弹窗输入账号密码不正确&#xff0c;后续不再弹窗。且后续操作无法进行。 在命令行里使用git 提交时弹出让输入git账号密码输错一次后续就不会再弹出来了&#xff08;它这里和在IDEA里使用不太一样&#xff0c;IDEA好找且他会重…