《零起点Python足彩大数据与机器学习实盘分析》采用MBA个案模式,配合Python教学代码,由浅入深,结合实盘案例,举一反三。无须专业编程基础,懂Excel即可开始学习。
本书采用Python编程语言、Pandas数据分析模块、机器学习和人工智能算法,对足彩大数据进行实盘分析。设计并发布了开源大数据项目zc-dat足彩数据包,汇总了2010—2016年全球5万余场足球比赛的赛事和赔率数据,包括威廉希尔、澳门、立博、Bet365、Interwetten、SNAI、皇冠、易胜博、伟德、必发等各大赔率公司。介绍了如何使用Python语言抓取网页数据,下载更新zc-dat足彩数据包,并预测分析比赛获胜球队的取胜概率,同时提出了检测人工智能算法优劣的“足彩图灵”法则。
目录
- 第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,zwiang 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 Python简介 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 案例2-2,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 Tokens特殊字符 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 内存数据库&数据包 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 一号策略参数寻优 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.3 朴素贝叶斯算法 296
- 11.4 KNN近邻算法 299
- 11.5 随机森林算法 302
- 第12章 机器学习经典算法案例(下) 308
- 12.1 决策树算法 308
- 12.2 GBDT迭代决策树算法 311
- 12.3 SVM向量机 313
- 12.4 SVM-cross向量机交叉算法 316
- 12.5 神经网络算法 318
- 12.5.1 经典神经网络算法 318
- 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-2CCPP数据切割 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
- 17.3 进一步深入 421
- 附录A Sklearn常用模块和函数 423