本書以一個彩票預測的實戰項目開發為主線,詳細介紹了爬蟲基礎、概率論、時間序列、深度學習等熱門的人工智能技術及TensorFlow+Keras這種主流的深度學習框架的使用方法。 本書分為8章,涵蓋的主要內容有深度學習基礎、數據抓取與存儲、概率論基礎、時間序列、深度學習框架簡介及環境安裝、深度學習原理、Keras入門、福彩3D預測平臺工程搭建等。
鄭敦莊畢業于北京交通大學計算機科學與技術專業,曾就職于華為軟件公司云計算部門,全棧開發人員,精通多種語言,曾到新浪愛彩、旺彩彩票工作過,深入研究各種預測算法,大自然預測公眾號超過四萬關注用戶,對比特幣量化交易、人工智能深度學習各類算法有過深入研究。胡承志現就職于世界500強公司高級研發工程師,當前職位為驅動與Android軟件開發工程師,2013年開始接觸彩票與比特幣領域,先后深入研究傳統算法模型、機器學習、深度學習等領域的各類算法,對各類算法模型在彩票開獎、比特幣價格波動預測等方面有過深入研究。
目 錄
第1章 深度學習基礎 1
1.1 人工智能、機器學習與深度學習 1
1.1.1 人工智能的誕生 1
1.1.2 人工智能、機器學習和深度學習的關系 3
1.1.3 深度學習的發展 3
1.2 深度學習的應用領域 4
1.2.1 語音搜索和語音助手 4
1.2.2 圖像識別 4
1.2.3 自動駕駛 5
1.2.4 金融領域 5
1.3 深度學習的主要框架 5
1.3.1 Theano 6
1.3.2 TensorFlow 6
1.3.3 Keras 7
1.3.4 PyTorch 8
1.3.5 Microsoft CNTK 8
1.3.6 MXNet 9
第2章 數據抓取與存儲 10
2.1 Windows系統下Python開發環境的安裝 10
2.1.1 Windows系統下安裝Anaconda 11
2.1.2 下載并安裝Python 3安裝包 11
2.1.3 檢查環境安裝是否成功 13
2.2 Linux系統下Python開發環境的安裝 13
2.2.1 CentOS 7系統下安裝Python 3.6 14
2.2.2 Ubuntu 18.04系統下安裝Python 3.6.6 15
2.2.3 Linux系統下安裝Anaconda 15
2.3 第三方庫的安裝 16
2.3.1 數據收集與處理流程 16
2.3.2 請求庫的安裝 17
2.3.3 解析庫的安裝 17
2.4 數據庫的安裝 19
2.4.1 Windows系統下安裝MySQL 8.0 19
2.4.2 Ubuntu系統下安裝MySQL 8.0 23
2.4.3 存儲庫的安裝 24
2.5 爬蟲基礎 25
2.5.1 URI和URL 25
2.5.2 超文本 25
2.5.3 HTTP協議和HTTPS協議 26
2.5.4 HTTP請求 27
2.5.5 Request請求 29
2.5.6 Reponse響應 33
2.6 實戰案例:抓取雙色球開獎數據 35
2.6.1 項目介紹 35
2.6.2 抓取最新期開獎數據 35
2.6.3 抓取歷史期開獎數據 49
第3章 概率論基礎 57
3.1 樣本空間及隨機變量 57
3.1.1 樣本空間 57
3.1.2 隨機變量 58
3.2 概率分布及分布函數 59
3.2.1 概率分布 59
3.2.2 分布函數 60
3.3 離散隨機變量 61
3.3.1 離散隨機變量概述 61
3.3.2 離散隨機變量的均勻分布 62
3.3.3 伯努利分布(Bernoulli Distribution) 65
3.3.4 二項分布(Binomial Distribution) 65
3.3.5 泊松分布(Poisson Distribution) 66
3.4 實戰案例:分析雙色球一等獎開獎注數是否隨機 68
3.4.1 查詢數據 68
3.4.2 柱形圖顯示 70
第4章 時間序列 77
4.1 時間序列入門 77
4.1.1 什么是時間序列 77
4.1.2 時間序列的基本概念 78
4.1.3 如何進行時間序列分析 79
4.2 彩票的特性模型選擇 80
4.2.1 概率均等性 80
4.2.2 偏態性 80
4.2.3 連貫性 81
4.2.4 時序性 81
4.3 馬爾可夫鏈模型 82
4.3.1 馬爾可夫鏈的基本原理 82
4.3.2 基于加權馬爾可夫鏈的模型福彩3D分析與預測 85
4.4 實戰案例:馬爾可夫鏈模型預測 87
4.4.1 項目介紹 87
4.4.2 抓取福彩3D數據 87
4.4.3 馬爾可夫鏈預測的步驟分析 96
4.4.4 馬爾可夫鏈預測步驟一:馬爾可夫性驗證 96
4.4.5 馬爾可夫鏈預測步驟二:一步轉移概率矩陣 98
4.4.6 馬爾可夫鏈預測步驟三:n步轉移概率矩陣 101
4.4.7 馬爾可夫鏈預測步驟四:計算權重wk 101
4.4.8 馬爾可夫鏈預測步驟五:進行預測 103
第5章 深度學習框架簡介及環境安裝 117
5.1 Tensorflow的發展歷程 117
5.2 Ubuntu系統下安裝TensorFlow+Keras 120
5.2.1 安裝CPU版本的TensorFlow 120
5.2.2 安裝Keras 122
5.3 Windows系統下安裝TensorFlow+Keras 122
5.3.1 安裝GPU版本的TensorFlow 122
5.3.2 安裝Keras 127
第6章 深度學習原理 128
6.1 深度學習數學基礎 128
6.1.1 張量 128
6.1.2 應用中的數據張量 132
6.2 神經網絡基礎 134
6.2.1 感知器 134
6.2.2 線性單元 140
6.2.3 線性模型 141
6.2.4 目標函數 141
6.2.5 梯度下降算法 142
6.2.6 隨機梯度下降算法 148
6.2.7 線性回歸代碼實例 148
6.3 循環神經網絡 152
6.3.1 循環神經網絡的概念 152
6.3.2 實戰RNN 153
6.4 LSTM神經網絡 156
6.4.1 RNN的長期依賴問題 156
6.4.2 LSTM原理簡介 156
6.5 參考文獻 159
第7章 Keras入門 160
7.1 Keras簡介 160
7.1.1 Keras在TensorFlow中的架構圖 161
7.1.2 Keras基礎 161
7.2 Sequential順序模型 162
7.2.1 指定輸入數據的大小 163
7.2.2 模型編譯 163
7.2.3 優化器 164
7.2.4 損失函數 171
7.2.5 損失函數的選擇 173
7.2.6 評價函數 181
7.2.7 模型訓練 182
7.2.8 訓練歷史可視化 184
7.2.9 模型預測 184
7.3 Keras LSTM簡介 185
7.3.1 LSTM參數介紹 185
7.3.2 LSTM序列模型搭建 186
7.4 實戰案例:LSTM神經網絡預測福彩3D 188
7.4.1 項目介紹 188
7.4.2 導入數據和參數 189
7.4.3 構建LotteryLSTM框架類 191
7.4.4 LotteryLSTM初始化 192
7.4.5 訓練數據集和測試數據集分割 192
7.4.6 LSTM網絡的創建與訓練 194
7.4.7 Keras模型的保存 196
7.4.8 LSTM網絡評估 199
7.4.9 LSTM網絡預測結果可視化 200
7.4.10 項目代碼實現 201
7.5 參考文獻 211
第8章 福彩3D預測平臺工程搭建 212
8.1 工程代碼整合 212
8.1.1 LSTM神經網絡模型保存 212
8.1.2 LSTM神經網絡模型調用 218
8.1.3 抓取數據代碼 220
8.1.4 MySQL數據庫導入數據庫文件 223
8.2 工程代碼 224
8.3 結束語 246