我用Python分析雙色球中獎概率!5分鐘帶你揭密~

路過一個賣彩票的店,突然靈感爆棚,想著是不是可以利用Python來預測一下的彩票號,這樣不就可以有首付買房子,相親找個對象也有點底氣了!說幹就幹,小編就拿雙色球為例,來給大家預測一下,萬一中呢!

我用Python分析雙色球中獎概率!5分鐘帶你揭密~

雙色球是福利彩票的一種玩法,已經賣了有很多年。之前在支付寶上app可以買的,每天2塊錢很有益身心健康,比LOL有積極意義。對於雙色球這門遊戲,剛開始買的時候是純粹靠感覺,後來百度又看到了百度預測(雖然尼瑪感覺一點都不準)。到底買雙色球是純靠運氣,還是也有技術含量呢?


我用Python分析雙色球中獎概率!5分鐘帶你揭密~

總之目標就是:

我用Python分析雙色球中獎概率!5分鐘帶你揭密~

01

爬取雙色球幾年的數據

首先是數據的獲取,小編利用爬蟲來爬取近16年來的每一期的雙色球中獎號碼,如下圖所示。

我用Python分析雙色球中獎概率!5分鐘帶你揭密~

爬蟲的部分程序如下圖所示:

我用Python分析雙色球中獎概率!5分鐘帶你揭密~

爬蟲的思路很簡單,主要是遍歷爬取120幾頁的數據,GetPage函數取逐頁解析,然後用bs取解析一些,並把數據保存在lottery文件裡面。

我用Python分析雙色球中獎概率!5分鐘帶你揭密~

用requests取偽裝一個header取請求數據,這些都是非常基本的爬蟲知識,這裡就不過多描述。

小編一共爬取到了2441條數據,包含了從2003年2月23號到2019年7月16號的所有中獎彩票數據。有了數據之後,小編先進行了一下數據的分析,看看紅色球和藍色球當中,究竟哪些數字出現的頻率較高。紅色球的各個數字出現頻率如下圖所示。


我用Python分析雙色球中獎概率!5分鐘帶你揭密~

從圖上可以看出來,數字1出現的次數最高,而數字33出現的頻率最低。藍色球數字出現的頻率如下圖所示。

我用Python分析雙色球中獎概率!5分鐘帶你揭密~

藍色球當中數字12出現的頻率最高,而數字8出現的頻率最低。

所以按照各個數字的出現頻率,小編統計了一下。按照出現的頻率來買,總比隨機買讓我感到安心。概率統計的部分代碼如下圖所示。

我用Python分析雙色球中獎概率!5分鐘帶你揭密~

其實就是用collection模塊裡面的Counter庫裡面的most_common()函數來對數據進行統計一些最常見的紅色球和藍色球的頻次比較高的。

02

機器學習來訓練模型

下面小編決定參照網上給出的一些方法,利用線性迴歸來進行預測。小編對每個位置上的數字都分別訓練一個模型。如下圖所示:

我用Python分析雙色球中獎概率!5分鐘帶你揭密~

綠色數字代表的是中獎號碼的每一個位置,黃色數字就代表著每一個位置下的編號,小編就是將每個位置上的號碼分別存儲,以每個中獎號碼作為Y值,而其每個編號作為X值,以此構成X、Y訓練數據,而我們只需要預測每一個位置上的下一期中獎號碼,然後將其拼接起來,就可以構成我們的下一期預測號碼。部分程序如下圖所示:

我用Python分析雙色球中獎概率!5分鐘帶你揭密~

小編首先是將各個位置上的中獎號碼分別存儲到csv文件當中,然後從各個csv文件中讀取數據,作為X、Y訓練數據進行返回。

最後再針對每個位置上的中獎號碼訓練各自的模型即可得到我們的下一期預測號碼。

以上就是小編分享的預測中獎號碼的全部內容了

結尾

最後多說一句,小編是一名python開發工程師,這裡有我自己整理了一套最新的python系統學習教程,包括從基礎的python腳本到web開發、爬蟲、數據分析、數據可視化、機器學習等。想要這些資料的可以關注小編,並在後臺私信小編:“01”即可領取。


分享到:


相關文章: