內容提要
《零起點Python足彩大數據與機器學習實盤分析》使用Python程式語言、Pandas數據分析模組、機器學習和人工智慧算法對足彩大數據進行實盤分析,設計並發布了開源大數據項目tfbDat足彩數據包,匯總了2010—2017年全球近7萬場足球比賽的賽事和賠率數據。此外,還介紹使用Python語言抓取網頁數據、下載更新tfbDat足彩數據包、預測和分析比賽球隊的取勝機率,同時提出了檢測人工智慧算法優劣的“足彩圖靈”法則。
目錄
第1章 足彩與數據分析 1
1.1 “阿爾法狗”與足彩 1
1.2 案例1-1:可怕的英國足球 3
1.3 關於足彩的幾個誤區 7
1.4 足彩·大事件 8
1.5 大數據圖靈(足彩)原則 10
1.6 主要線上彩票資源 11
1.7 主要線上足彩數據源 15
1.8 足彩基礎知識 17
1.9 學習路線圖 18
第2章 開發環境 19
2.1 數據分析首選Python 19
2.1.1 大數據,why Python 19
2.1.2 入門簡單,功能強大 21
2.1.3 難度降低90%,性能提高10倍 23
2.1.4 “零對象”編程模式 24
2.2 用戶運行平台 25
2.3 程式目錄結構 26
2.4 tfbDat足彩數據包 27
2.5 Spyder編輯器界面設定 28
2.5.1 開發環境界面設定 28
2.5.2 代碼配色技巧 29
2.5.3 圖像顯示配置 31
2.5.4 重劍無鋒 32
2.6 Notebook模式 34
2.7 模組庫控制臺 36
2.7.1 模組庫資源 37
2.7.2 模組庫維護更新 37
2.7.3 系統關聯 38
2.8 使用pip命令更新模組庫 39
2.8.1 pip常用命令 39
2.8.2 進入Python命令行模式 41
2.8.3 pip安裝模板 41
2.8.4 pip參數解釋 42
2.8.5 pip-install參數選項 43
第3章 入門案例套餐 45
3.1 案例3-1:第一次編程,“hello,ziwang” 45
3.1.1 簡單調試 46
3.1.2 控制台復位 47
3.2 案例3-2:增強版“hello,ziwang” 47
3.3 案例3-3:列舉系統模組庫清單 49
3.4 案例3-4:常用繪圖風格 50
3.5 案例3-5:Pandas常用繪圖風格 52
3.6 案例3-6:常用顏色表cors 53
第4章 足彩量化分析系統 55
4.1 功能簡介 55
4.1.1 目錄結構 56
4.1.2 TFB安裝與更新 56
4.2 TFB主體框架 57
4.2.1 模組構成 57
4.2.2 Top-Base極寬基礎模組庫 57
4.2.3 Top-Football極寬足彩專業模組庫 58
4.2.4 tfbDat極寬足彩數據包 59
4.2.5 量化系統模組構成 60
4.2.6 案例4-1:賠率檔案切割 61
4.2.7 案例4-2:批量切割數據檔案 64
4.3 tfbDat數據結構 66
4.3.1 案例4-3:tfb數據格式 67
4.3.2 gid基本比賽數據格式 67
4.3.3 xdat賠率數據格式 69
4.4 足彩基本數據分析 73
4.4.1 案例4-4:比賽數據基本圖表分析 73
4.4.2 案例4-5:比賽數據進階圖表分析 77
4.4.3 案例4-6:比賽數據年度圖表分析 80
4.4.4 案例4-7:比賽數據時間細分圖表分析 81
4.5 勝、平、負數據分析 88
4.5.1 案例4-8:勝、平、負數據分析 88
4.5.2 @修飾符 88
4.5.3 勝、平、負分析 90
4.6 賠率數據分析 91
4.6.1 案例4-9:賠率分析 91
4.6.2 擴充dr_gid_top10繪圖函式 92
4.6.3 賠率對比 93
第5章 常用數據分析工具 96
5.1 Pandas數據分析軟體 96
5.1.1 Pandas簡介 96
5.1.2 案例5-1:Pandas常用統計功能 99
5.2 科學計算 104
5.3 人工智慧 105
5.4 NLTK語義分析 107
5.5 數據清洗統計分析 109
5.6 數據可視化 109
第6章 輔助工具 114
6.1 性能最佳化 114
6.1.1 Numexpr矢量加速庫 115
6.1.2 Numba支持GPU的加速模組庫 115
6.1.3 Blaze大數據最佳化模組庫 115
6.1.4 Pyston加速模組 116
6.1.5 PyPy加速模組 116
6.1.6 Cython 116
6.1.7 其他最佳化技巧 117
6.2 網頁信息抓取 117
6.2.1 Requests人性化的網路模組 118
6.2.2 Scrapy網頁爬蟲框架 118
6.2.3 Beautiful Soup 4 119
6.3 其他工具模組 120
6.3.1 Logging日誌模組 120
6.3.2 Debug調試工具 121
6.3.3 re正則表達式 121
6.3.4 並行編程 122
6.4 網路輔助資源 123
6.5 arrow優雅簡捷的時間模組庫 125
6.5.1 案例6-1:arrow入門案例 126
6.5.2 創建arrow時間對象 128
6.5.3 創建時間戳 128
6.5.4 arrow屬性 129
6.5.5 replace替換和shift位移 130
6.5.6 format格式化參數 130
6.5.7 時間轉換 131
6.5.8 短命令 131
6.5.9 人性化 131
6.5.10 範圍和跨度 132
6.5.11 工廠模式 133
6.5.12 Token特殊字元 133
第7章 網路足彩數據抓取 135
7.1 500彩票網站數據接口的優勢 135
7.1.1 案例7-1:抓取賠率數據網頁 136
7.1.2 網頁數據實戰操作技巧 139
7.2 網頁解析的心靈雞湯 141
7.2.1 BS4四大要素三缺一 142
7.2.2 Tag標籤對象 142
7.2.3 案例7-2:Tag標籤對象 142
7.2.4 案例7-3:Tag標籤對象數據類型 145
7.2.5 NavigableString導航字元串 149
7.2.6 BeautifulSoup複合對象 149
7.2.7 Comment注釋對象 150
7.2.8 案例7-4:BS4查找匹配功能 150
7.2.9 BS4節點遍歷功能 154
7.3 足彩基本數據抓取 155
7.3.1 案例7-5:分析網頁比賽數據 155
7.3.2 案例7-6:提取網頁比賽數據 157
7.3.3 gid比賽基本數據結構 159
7.3.4 案例7-7:提取比賽得分 161
7.3.5 案例7-8:提取球隊id編碼 164
7.3.6 案例7-9:抓取歷年比賽數據 167
7.3.7 案例7-10:流程圖工具與Python 171
7.3.8 實盤技巧 172
7.3.9 案例7-11:進程池並發運行 174
7.4 批量抓取足彩網頁數據實盤教程 177
7.4.1 案例7-12:批量抓取賠率數據 177
7.4.2 fb_gid_getExt擴展網頁下載函式 178
7.4.3 bars節點數據包與pools彩票池 178
7.4.4 抓取擴展網頁 180
7.5 足彩賠率數據抓取 181
7.5.1 gid與賠率數據網頁 181
7.5.2 案例7-13:提取賠率數據 184
7.5.3 賠率數據與結構化數據 186
7.5.4 瀑布流數據網頁與小數據理論 189
第8章 足彩數據回溯測試 191
8.1 TFB系統構成 192
8.1.1 TFB系統模組結構 192
8.1.2 Top-Base極寬基礎模組庫 192
8.1.3 Top-Football極寬足彩專業模組庫 193
8.2 實盤數據更新 194
8.2.1 案例8-1:實盤數據更新 194
8.2.2 實盤要點:冗餘 195
8.2.3 實盤要點:耐心 196
8.2.4 實盤要點:數據檔案 197
8.2.5 main_get函式 197
8.3 變數初始化 199
8.3.1 全局變數與類定義 201
8.3.2 彩票池記憶體資料庫 202
8.3.3 案例8-2:記憶體資料庫&數據包 204
8.4 回溯測試 205
8.4.1 案例8-3:回溯 206
8.4.2 main_bt回溯主入口 207
8.4.3 案例8-4:實盤迴溯 209
8.4.4 彩票池與統計池 211
8.4.5 poolTrd下單交易數據 212
8.4.6 poolRet回報記錄數據 213
8.4.7 實盤足彩推薦分析 214
8.4.8 實盤迴報分析 214
8.4.9 全數據分析與足彩數據集 215
8.5 bt_main回溯主函式 216
8.5.1 bt_1dayMain單日回溯函式 218
8.5.2 賠率數據合併函式 219
8.5.3 單日回報分析函式 220
8.5.4 單日回報分析 221
8.5.5 單場比賽回報分析 223
8.6 sta01策略的大數據分析 224
8.6.1 一號策略函式 226
8.6.2 超過100%的盈利策略與秘訣 227
8.6.3 統計分析 228
8.6.4 回溯時間測試 229
8.6.5 bt_main_ret總回報分析 230
第9章 參數智慧型尋優 232
9.1 一元參數尋優 233
9.1.1 案例9-1:一號策略參數尋優 233
9.1.2 一元測試函式 234
9.1.3 測試結果數據格式 236
9.1.4 案例9-2:一元參數圖表分析 237
9.2 策略函式擴展 241
9.2.1 擴展一號策略函式 241
9.2.2 案例9-3:一號擴展策略 242
9.2.3 案例9-4:sta10策略 244
9.3 二元參數尋優 246
9.3.1 案例9-5:sta10參數尋優 246
9.3.2 案例9-6:二元參數圖表分析 248
9.4 策略310準多因子策略 252
9.4.1 案例9-7:數據預處理 254
9.4.2 案例9-8:策略310參數尋優 257
9.4.3 案例9-9:策略310圖表分析 259
9.4.4 案例9-10:策略310 264
第10章 Python人工智慧入門與實踐 266
10.1 從忘卻開始 266
10.2 Iris經典愛麗絲 269
10.2.1 案例10-1:經典愛麗絲 270
10.2.2 案例10-2:愛麗絲進化與矢量化文本 272
10.3 AI操作流程 273
10.3.1 機器學習與測試數據集合 274
10.3.2 機器學習運行流程 274
10.3.3 經典機器學習算法 275
10.3.4 黑箱大法 275
10.3.5 數據切割函式 276
10.3.6 案例10-3:愛麗絲分解 277
10.3.7 案例10-4:線性回歸算法 281
第11章 機器學習經典算法案例(上) 286
11.1 線性回歸 286
11.2 邏輯回歸算法 293
11.2.1案例11-1:邏輯回歸算法 294
11.3樸素貝葉斯算法 296
11.3.1案例11-2:貝葉斯算法 297
11.4KNN近鄰算法 299
11.4.1 案例11-3:KNN近鄰算法 301
11.5隨機森林算法 302
11.5.1 案例11-4:隨機森林算法 306
第12章 機器學習經典算法案例(下) 308
12.1 決策樹算法 308
12.1.1案例12-1:決策樹算法 310
12.2GBDT疊代決策樹算法 311
12.2.1案例12-2:GBDT疊代決策樹算法 312
12.3SVM向量機 313
12.3.1案例12-3:SVM向量機算法 315
12.4SVM-cross向量機交叉算法 316
12.4.1案例12-4:SVM-cross向量機交叉算法 317
12.5神經網路算法 318
12.5.1 經典神經網路算法 319
12.5.2 Sklearn神經網路算法 320
12.5.3 人工智慧學習路線圖 320
12.5.4 案例12-5:MLP神經網路算法 321
12.5.5 案例12-6:MLP_reg神經網路回歸算法 323
第13章 機器學習組合算法 326
13.1 CCPP數據集 326
13.1.1 案例13-1:CCPP數據集 327
13.1.2 案例13-2:CCPP數據切割 328
13.1.3 數據切割函式 330
13.1.4 案例13-3:讀取CCPP數據集 331
13.1.5 數據讀取函式 333
13.2 機器學習統一接口函式 334
13.2.1 案例13-4:機器學習統一接口 334
13.2.2 統一接口函式 336
13.2.3 機器學習算法代碼 338
13.2.4 效果評估函式 339
13.2.5 常用評測指標 340
13.3 批量調用機器學習算法 341
13.3.1 案例13-5:批量調用 341
13.3.2 批量調用算法模型 344
13.4 一體化調用 345
13.4.1 案例13-6:一體化調用 345
13.4.2 一體化調用函式 346
13.5 模型預製與保存 348
13.5.1 案例13-7:儲存算法模型 348
13.5.2 模型保存函式 350
13.5.3 模型預測函式 350
13.5.4 案例13-8:批量儲存算法模型 351
13.5.5 批量模型儲存函式 353
13.5.6 案例13-9:批量載入算法模型 353
13.6 機器學習組合算法 357
13.6.1 案例13-10:機器學習組合算法 357
13.6.2 機器學習組合算法函式 359
第14章 足彩機器學習模型構建 361
14.1 數據整理 361
14.1.1 案例14-1:賠率數據合成 362
14.1.2 案例14-2:按年切割賠率數據 365
14.1.3 案例14-3:累計切割賠率數據 365
14.2 年度足彩賠率模型 366
14.2.1 案例14-4:2016年度足彩賠率模型組 367
14.2.2 案例14-5:年度多欄位足彩賠率模型組 370
14.3 累計足彩賠率模型 373
14.3.1 案例14-6:累計2016足彩賠率模型組 373
14.3.2 案例14-7:累計多欄位足彩賠率模型組 376
14.3.3 足彩算法模型檔案 379
第15章 足彩機器學習模型驗證 381
15.1 年度賠率模型驗證 381
15.1.1 案例15-1:年度賠率模型驗證 381
15.1.2 案例15-2:多欄位年度賠率模型驗證 383
15.2 累計賠率模型驗證 385
15.2.1 案例15-3:累計賠率模型驗證 385
15.2.2 案例15-4:多欄位累計賠率模型驗證 386
15.3 年度組合模型驗證 388
15.3.1 案例15-5:年度組合模型驗證 388
15.3.2 案例15-6:多欄位年度組合模型驗證 391
15.3.3 案例15-7:全欄位年度組合模型驗證 391
15.3.4 年度組合模型測試數據對比分析 392
15.4 累計組合模型驗證 393
15.4.1 案例15-8:年度組合模型驗證 393
15.4.2 案例15-9:多欄位年度組合模型驗證 394
15.4.3 累計組合模型測試數據對比分析 394
第16章 結果數據分析 397
16.1 神秘的df9 397
16.1.1 案例16-1:調試模式 397
16.1.2 神秘的df9結果數據變數 400
16.2 盈利率分析 402
16.2.1 案例16-2:盈利率計算 402
第17章 機器學習足彩實盤分析 407
17.1 回溯主入口 408
17.1.1 案例17-1:策略sta01 409
17.1.2 結果檔案解讀 409
17.1.3 數據欄位分析 411
17.2 機器學習與回溯分析 412
17.2.1 案例17-2:Log回歸策略足彩分析 414
17.2.2 Log回歸策略函式 415
17.2.3 案例17-3:30天Log回歸策略足彩分析 418
17.2.4 數據檔案分析 420
17.2.5 足彩推薦 421