欢迎光临
免费的PDF电子书下载网站

滴滴技术大牛带你学数据库与XGBoost套装 套装共2册 PDF下载

编辑推荐

《Redis5设计与源码分析》

多名专家联袂推荐,资深专家联合撰写,深入理解Redis 5设计精髓

系统讲解Redis 5设计、数据结构、底层命令实现,以及持久化、主从复制、集群

 ;

《深入理解XGBoost:高效机器学习算法与进阶》

1)知名互联网公司工程师撰写,打通高效机器学习脉络,掌握竞赛神器XGBoost

2)以机器学习基础知识做铺垫,深入剖析XGBoost原理、分布式实现、模型优化、深度应用等

 ;

内容简介

《Redis5设计与源码分析》

全书主要分为三部分介绍Redis。第壹部分介绍Redis5中使用的数据结构,包括动态字符串、跳跃表、压缩列表、字典、整数集合和快速链表,详细介绍其基本结构及常见操作。第二部分为本书核心篇章,首先介绍了Redis5的启动流程,命令解析流程,之后对Redis5中的命令实现进行了全面的介绍,包括键命令、字符串命令、哈希表命令、列表命令、集合及有序集合命令、地理位置相关的GEO命令、统计相关的HyperLogLog命令。第三部分,主要介绍了Redis5的一些特性及使用,包括事务、持久化、主从复制以及集群等。

 ;

《深入理解XGBoost:高效机器学习算法与进阶》

本书以机器学习基础知识做铺垫,深入剖析XGBoost的原理、分布式实现、模型优化、深度应用等。
 ;第1~3章使读者对机器学习算法形成整体认知,了解如何优化模型以及评估预测结果,并熟悉常用机器学习算法的实现原理和应用,如线性回归、逻辑回归、决策树、神经网络、支持向量机等。
 ;第4章借助实际案例,讲解如何通过XGBoost解决分类、回归、排序等问题,并介绍了XGBoost常用功能的使用方法。
 ;第5~7章是本书的重点,从理论推导与源码层面深入剖析XGBoost,涵盖XGBoost原理与理论证明、分布式XGBoost的实现、XGBoost各组件的源码解析。
 ;第8~9章为进阶内容,着重解析算法实践与工程应用中的难点,进而帮助读者更好地解决实际问题。
 ;第10章介绍了一些较为前沿的将树模型与其他模型融合的研究方法,以开拓眼界,拓展思路。

作者简介

《Redis5设计与源码分析》

陈雷,好未来学而思网校增长研发负责人,清华与北京邮电大学硕士,曾在百度、腾讯和滴滴等公司工作,12年后端架构经验。合著有《PHP7底层设计与源码实现》。

方波,资深工程师,先后就职于360、百度、滴滴,设计并开发360消息系统Qbus、Nginx接入层、电商网站架构等分布式高并发系统。

黄桃,好未来学而思网校架构师,从事互联网服务端研发与架构工作多年,熟悉PHP、Nginx、Redis等源码实现,乐于学习与分享。合著有《PHP 7底层设计与源码实现》。

李乐,好未来PHP工程师,西安电子科技大学硕士,乐于钻研技术与源码研究,对Redis和Nginx有较深理解。

施洪宝, 好未来后端研发工程师,东南大学硕士,对Redis、Nginx等开源软件有较深的理解,熟悉C/C 开发,对高并发、分布式有浓厚兴趣,曾发表EI论文2篇,。

熊浩含,百度研发工程师、PHP开发者,对Redis等开源软件有较深的研究。乐于钻研技术难点,喜欢折腾,在学习思路上有很好的方法论。

闫昌,好未来后端软件开发工程师,深耕信息安全领域多年,对Linux下服务端开发有较深见解,擅长高并发业务的实现。

张仕华,滴滴资深软件开发工程师,热衷于研究高并发场景下的架构设计及实现,熟悉Redis、Nginx和LevelDB等源码,热衷于探究技术本质。

周生政,滴滴后端高级工程师,多年LNMP技术栈开发经验,曾任北京环球购物电商后端技术负责人。热衷于Linux平台效率工具, 熟悉Bash、Docker等自动化工具。

《深入理解XGBoost:高效机器学习算法与进阶》

现就职于滴滴出行,XGBoost开源社区贡献者,专注于人工智能和机器学习领域,从底层算法原理到上层应用实践都有广泛的兴趣和研究。较早接触XGBoost,熟悉XGBoost应用开发,深入阅读源码,具有丰富的项目开发经验。

滴滴技术大牛带你学数据库与XGBoost套装 套装共2册 PDF下载

目录

《Redis5设计与源码分析》

本书赞誉

前言
第1章 引言1
1.1 Redis简介1
1.2 Redis 5.0的新特性2
1.3 Redis源码概述3
1.4 Redis安装与调试4
1.5 本章小结6
第2章 简单动态字符串7
2.1 数据结构7
2.2 基本操作11
2.2.1 创建字符串11
2.2.2 释放字符串12
2.2.3 拼接字符串12
2.2.4 其余API15
2.3 本章小结15
第3章 跳跃表17
3.1 简介17
3.2 跳跃表节点与结构19
3.2.1 跳跃表节点19
3.2.2 跳跃表结构20
3.3 基本操作20
3.3.1 创建跳跃表21
3.3.2 插入节点22
3.3.3 删除节点28
3.3.4 删除跳跃表30
3.4 跳跃表的应用31
3.5 本章小结32
第4章 压缩列表33
4.1 压缩列表的存储结构33
4.2 结构体35
4.3 基本操作37
4.3.1 创建压缩列表37
4.3.2 插入元素38
4.3.3 删除元素42
4.3.4 遍历压缩列表44
4.4 连锁更新44
4.5 本章小结45
第5章 字典47
5.1 基本概念47
5.1.1 数组48
5.1.2 Hash函数49
5.1.3 Hash冲突51
5.2 Redis字典的实现52
5.3 基本操作55
5.3.1 字典初始化55
5.3.2 添加元素56
5.3.3 查找元素60
5.3.4 修改元素61
5.3.5 删除元素61
5.4 字典的遍历62
5.4.1 迭代器遍历62
5.4.2 间断遍历65
5.5 API列表70
5.6 本章小结71
第6章 整数集合72
6.1 数据存储72
6.2 基本操作75
6.2.1 查询元素75
6.2.2 添加元素78
6.2.3 删除元素82
6.2.4 常用API83
6.3 本章小结85
第7章 quicklist的实现86
7.1 quicklist简介86
7.2 数据存储87
7.3 数据压缩91
7.3.1 压缩92
7.3.2 解压缩93
7.4 基本操作94
7.4.1 初始化94
7.4.2 添加元素95
7.4.3 删除元素96
7.4.4 更改元素98
7.4.5 查找元素99
7.4.6 常用API100
7.5 本章小结101
第8章 Stream102
8.1 Stream简介102
8.1.1 Stream底层结构listpack103
8.1.2 Stream底层结构Rax简介104
8.1.3 Stream结构108
8.2 Stream底层结构listpack的实现112
8.2.1 初始化112
8.2.2 增删改操作112
8.2.3 遍历操作113
8.2.4 读取元素113
8.3 Stream底层结构Rax的实现114
8.3.1 初始化114
8.3.2 查找元素114
8.3.3 添加元素116
8.3.4 删除元素118
8.3.5 遍历元素120
8.4 Stream结构的实现123
8.4.1 初始化124
8.4.2 添加元素124
8.4.3 删除元素125
8.4.4 查找元素128
8.4.5 遍历129
8.5 本章小结131
第9章 命令处理生命周期132
9.1 基本知识132
9.1.1 对象结构体robj132
9.1.2 客户端结构体client136
9.1.3 服务端结构体redisServer138
9.1.4 命令结构体redisCommand139
9.1.5 事件处理141
9.2 server启动过程149
9.2.1 server初始化149
9.2.2 启动监听152
9.3 命令处理过程155
9.3.1 命令解析156
9.3.2 命令调用159
9.3.3 返回结果161
9.4 本章小结163
第10章 键相关命令的实现164
10.1 对象结构体和数据库结构体回顾164
10.1.1 对象结构体redisObject164
10.1.2 数据库结构体redisDb166
10.2 查看键信息166
10.2.1 查看键属性166
10.2.2 查看键类型169
10.2.3 查看键过期时间170
10.3 设置键信息171
10.3.1 设置键过期时间171
10.3.2 删除键过期时间172
10.3.3 重命名键173
10.3.4 修改键最后访问173
10.4 查找键174
10.4.1 判断键是否存在174
10.4.2 查找符合模式的键175
10.4.3 遍历键176
10.4.4 随机取键177
10.5 操作键178
10.5.1 删除键178
10.5.2 序列化/反序列化键182
10.5.3 移动键183
10.5.4 键排序185
10.6 本章小结187
第11章 字符串相关命令的实现188
11.1 相关命令介绍188
11.2 设置字符串189
11.2.1 set命令189
11.2.2 mset命令195
11.3 修改字符串196
11.3.1 append命令196
11.3.2 setrange命令197
11.3.3 计数器命令197
11.4 字符串获取199
11.4.1 get命令199
11.4.2 getset命令199
11.4.3 getrange命令199
11.4.4 strlen命令200
11.4.5 mget命令201
11.5 字符串位操作201
11.5.1 setbit命令201
11.5.2 getbit命令203
11.5.3 bitpos命令203
11.5.4 bitcount命令205
11.5.5 bitop命令208
11.5.6 bitfield命令209
11.6 本章小结212
第12章 散列表相关命令的实现213
12.1 简介213
12.1.1 底层存储213
12.1.2 底层存储转换215
12.1.3 接口说明215
12.2 设置命令216
12.3 读取命令217
12.3.1 hexists命令218
12.3.2 hget/hmget命令218
12.3.3 hkeys/hvals/hgetall命令219
12.3.4 hlen命令220
12.3.5 hscan命令220
12.4 删除命令221
12.5 自增命令222
12.6 本章小结224
第13章 列表相关命令的实现225
13.1 相关命令介绍225
13.1.1 命令列表225
13.1.2 栈和队列命令列表226
13.2 push/pop相关命令228
13.2.1 push类命令的实现228
13.2.2 pop类命令的实现229
13.2.3 阻塞push/pop类命令的实现230
13.3 获取列表数据234
13.3.1 获取单个元素234
13.3.2 获取多个元素235
13.3.3 获取列表长度236
13.4 操作列表236
13.4.1 设置元素237
13.4.2 插入元素237
13.4.3 删除元素238
13.4.4 裁剪列表239
13.5 本章小结240
第14章 集合相关命令的实现241
14.1 相关命令介绍241
14.2 集合运算254
14.2.1 交集254
14.2.2 并集258
14.2.3 差集260
14.3 本章小结263
第15章 有序集合相关命令的实现264
15.1 相关命令介绍264
15.2 基本操作272
15.2.1 添加成员272
15.2.2 删除成员275
15.2.3 基数统计276
15.2.4 数量计算277
15.2.5 计数器279
15.2.6 获取排名279
15.2.7 获取分值279
15.2.8 遍历280
15.3 批量操作280
15.3.1 范围查找280
15.3.2 范围删除283
15.4 集合运算284
15.5 本章小结284
第16章 GEO相关命令285
16.1 基础知识285
16.2 命令实现288
16.2.1 使用geoadd添加坐标288
16.2.2 计算坐标的geohash291
16.2.3 使用geopos查询位置经纬度292
16.2.4 使用geodist计算两点距离295
16.2.5 使用georadius/georadius-bymembe查询范围内元素295
16.3 本章小结297
第17章 HyperLogLog相关命令的实现298
17.1 基本原理298
17.1.1 算法演进299
17.1.2 线性计数算法299
17.1.3 对数计数算法300
17.1.4 自适应计数算法302
17.1.5 超对数计数算法302
17.2 HLL Redis实现302
17.2.1 HLL头对象303
17.2.2 稀疏编码304
17.2.3 密集编码306
17.2.4 内部编码308
17.2.5 编码转换309
17.3 命令实现310
17.3.1 添加基数310
17.3.2 近似基数311
17.3.3 合并基数313
17.4 本章小结314
第18章 数据流相关命令的实现315
18.1 相关命令介绍315
18.2 基本操作命令原理分析323
18.2.1 添加消息323
18.2.2 删除消息325
18.2.3 范围查找326
18.2.4 获取队列信息327
18.2.5 长度统计327
18.2.6 剪切消息328
18.3 分组命令原理分析328
18.3.1 分组管理328
18.3.2 消费消息330
18.3.3 响应消息331
18.3.4 获取未响应消息列表331
18.3.5 修改指定未响应消息归属331
18.4 本章小结332
第19章 其他命令333
19.1 事务333
19.1.1 事务简介333
19.1.2 事务命令实现334
19.2 发布-订阅命令实现339
19.3 Lua脚本345
19.3.1 初始化Lua环境345
19.3.2 在Lua中调用Redis命令347
19.3.3 Redis和Lua数据类型转换349
19.3.4 命令实现351
19.4 本章小结356
第20章 持久化357
20.1 RDB358
20.1.1 RDB执行流程358
20.1.2 RDB文件结构359
20.2 AOF367
20.2.1 AOF执行流程368
20.2.2 AOF重写369
20.3 RDB与AOF相关配置指令372
20.4 本章小结374
第21章 主从复制375
21.1 主从复制功能实现375
21.2 主从复制源码基础378
21.3 slaver源码分析382
21.4 master源码分析388
21.5 本章小结391
第22章 哨兵和集群392
22.1 哨兵392
22.1.1 哨兵简介393
22.1.2 代码流程394
22.1.3 主从切换396
22.1.4 常用命令399
22.2 集群400
22.2.1 集群简介401
22.2.2 代码流程402
22.2.3 主从切换404
22.2.4 副本漂移406
22.2.5 分片迁移407
22.2.6 通信数据包类型409
22.3 本章小结415

 ;

《深入理解XGBoost:高效机器学习算法与进阶》

前言
第1章 机器学习概述1
1.1 何谓机器学习1
1.1.1 机器学习常用基本概念2
1.1.2 机器学习类型3
1.1.3 机器学习应用开发步骤4
1.2 集成学习发展与XGBoost提出5
1.2.1 集成学习5
1.2.2 XGBoost6
1.3 小结7
第2章 XGBoost骊珠初探9
2.1 搭建Python机器学习环境9
2.1.1 Jupyter Notebook10
2.1.2 NumPy11
2.1.3 Pandas18
2.1.4 Matplotlib32
2.1.5 scikit-learn39
2.2 搭建XGBoost运行环境39
2.3 示例:XGBoost告诉你蘑菇是否有毒42
2.4 小结44
第3章 机器学习算法基础45
3.1 KNN45
3.1.1 KNN关键因素46
3.1.2 用KNN预测鸢尾花品种47
3.2 线性回归52
3.2.1 梯度下降法53
3.2.2 模型评估55
3.2.3 通过线性回归预测波士顿房屋价格55
3.3 逻辑回归57
3.3.1 模型参数估计59
3.3.2 模型评估60
3.3.3 良性/恶性乳腺肿瘤预测61
3.3.4 softmax64
3.4 决策树65
3.4.1 构造决策树66
3.4.2 特征选择67
3.4.3 决策树剪枝71
3.4.4 决策树解决肿瘤分类问题71
3.5 正则化75
3.6 排序78
3.6.1 排序学习算法80
3.6.2 排序评价指标81
3.7 人工神经网络85
3.7.1 感知器85
3.7.2 人工神经网络的实现原理87
3.7.3 神经网络识别手写体数字90
3.8 支持向量机92
3.8.1 核函数95
3.8.2 松弛变量97
3.8.3 通过SVM识别手写体数字98
3.9 小结99
第4章 XGBoost小试牛刀100
4.1 XGBoost实现原理100
4.2 二分类问题101
4.3 多分类问题109
4.4 回归问题113
4.5 排序问题117
4.6 其他常用功能121
4.7 小结145
第5章 XGBoost原理与理论证明146
5.1 CART146
5.1.1 CART生成147
5.1.2 剪枝算法150
5.2 Boosting算法思想与实现151
5.2.1 AdaBoost151
5.2.2 Gradient Boosting151
5.2.3 缩减153
5.2.4 Gradient Tree Boosting153
5.3 XGBoost中的Tree Boosting154
5.3.1 模型定义155
5.3.2 XGBoost中的Gradient Tree Boosting156
5.4 切分点查找算法161
5.4.1 精确贪心算法161
5.4.2 基于直方图的近似算法163
5.4.3 快速直方图算法165
5.4.4 加权分位数概要算法167
5.4.5 稀疏感知切分点查找算法167
5.5 排序学习169
5.6 DART174
5.7 树模型的可解释性177
5.7.1 Saabas177
5.7.2 SHAP179
5.8 线性模型原理183
5.8.1 Elastic Net回归183
5.8.2 并行坐标下降法184
5.8.3 XGBoost线性模型的实现185
5.9 系统优化187
5.9.1 基于列存储数据块的并行学习188
5.9.2 缓存感知访问190
5.9.3 外存块计算191
5.10 小结192
第6章 分布式XGBoost193
6.1 分布式机器学习框架Rabit 193
6.1.1 AllReduce193
6.1.2 Rabit195
6.1.3 Rabit应用197
6.2 资源管理系统YARN 200
6.2.1 YARN的基本架构201
6.2.2 YARN的工作流程202
6.2.3 XGBoost on YARN203
6.3 可移植分布式XGBoost4J205
6.4 基于Spark平台的实现208
6.4.1 Spark架构208
6.4.2 RDD210
6.4.3 XGBoost4J-Spark211
6.5 基于Flink平台的实现223
6.5.1 Flink原理简介224
6.5.2 XGBoost4J-Flink227
6.6 基于GPU加速的实现229
6.6.1 GPU及其编程语言简介229
6.6.2 XGBoost GPU加速原理230
6.6.3 XGBoost GPU应用236
6.7 小结239
第7章 XGBoost进阶240
7.1 模型训练、预测及解析240
7.1.1 树模型训练240
7.1.2 线性模型训练256
7.1.3 模型预测258
7.1.4 模型解析261
7.2 树模型更新264
7.2.1 updater_colmaker264
7.2.2 updater_histmaker264
7.2.3 updater_fast_hist271
7.2.4 其他更新器276
7.3 目标函数278
7.3.1 二分类279
7.3.2 回归280
7.3.3 多分类282
7.3.4 排序学习284
7.4 评估函数288
7.4.1 概述289
7.4.2 二分类291
7.4.3 多分类295
7.4.4 回归296
7.4.5 排序297
7.5 小结299
第8章 模型选择与优化300
8.1 偏差与方差300
8.2 模型选择303
8.2.1 交叉验证304
8.2.2 Bootstrap306
8.3 超参数优化307
8.3.1 网格搜索308
8.3.2 随机搜索310
8.3.3 贝叶斯优化313
8.4 XGBoost超参数优化315
8.4.1 XGBoost参数介绍315
8.4.2 XGBoost调参示例319
8.5 小结334
第9章 通过XGBoost实现广告分类器335
9.1 PCA335
9.1.1 PCA的实现原理335
9.1.2 通过PCA对人脸识别数据降维338
9.1.3 利用PCA实现数据可视化341
9.2 通过XGBoost实现广告分类器343
9.3 小结357
第10章 基于树模型的其他研究与应用358
10.1 GBDT、LR融合提升广告点击率358
10.2 mGBDT360
10.3 DEF362
10.4 一种基于树模型的强化学习方法366
10.5 小结370

媒体评论

★本书从底层源码的角度,对Redis的数据结构以及持久化、主从复制、哨兵和集群等特性的实现原理进行了详尽的剖析,图文并茂。行文中也能看出作者团队在源码分析和系统编程方面的功力,我相信本书对于所有想要了解Redis及其内部实现的人来说都会有所帮助。
  ——黄健宏,《Redis设计与实现》作者
  
  ★Redis以其高速、轻量和丰富的数据结构与功能被越来越多的工程师所钟爱。然而,用Redis的人很多,真正懂Redis的人很少,本书正是写给那些使用了Redis并希望进一步深入理解Redis的读者。作者及其团队通过对Redis新版本(5.x)各部分源码的分析,庖丁解牛,深入浅出,带领读者一步步探索Redis的方方面面,让读者从原理层面真正懂得Redis。
  ——黄鹏程,中国民生银行大数据工程师、《Redis4.XCookbook》作者
  
  ★本书全面解析了Redis5内核的方方面面,能够有效帮助Redis的开发和运维人员全面理解Redis的运行原理,对于需要进阶Redis的读者而言是难得的好书。
  ——付磊,《Redis开发与运维》作者
  
  ★对技术有点追求的程序员一定不要错过这本Redis5源码分析书,本书对Redis的内部实现分析得非常全面透彻,如果你觉得直接阅读源码有点吃力,试试让这本书来带领你探索Redis源码。
  ——钱文品,《Redis深度历险》作者
  
  ★本书不仅深入源码讲解了Redis常用的底层数据结构和常用命令处理的实际过程,还细致入微地讲述了基数计数算法的演进和HyperLogLog算法在Redis中的具体实现,这是非常有用且难得的;本书的后几章详细讲述了Redis常用的主从复制和持久化的原理,这对于排查问题,以及优化Redis集群有极高的参考价值。
  ——张晋涛,网易有道资深运维开发
  
  ★Redis已经是IT企业技术栈中重要的一环,与其相关的从业者数量也逐年增多,对大多数人来说Redis可谓既熟悉又神秘,只有不足4MB的源码却实现了一个功能丰富且健壮的数据库。本书的出版对于想深入了解Redis的从业者来说是一个好消息。本书从源码层面对Redis进行深入剖析,尤其是数据结构部分,其学习意义不限于Redis,强烈推荐阅读。
  ——吴建超,OPPO工程师

前沿

《Redis5设计与源码分析》

为什么要写这本书
2年前,我们团队建立了学习圈,团队成员可以自愿参加,每天8∶50~10∶30到公司充电100分钟,深入剖析工作中的技术栈,同时2017~2018年编写出版了《PHP 7底层设计与源码实现》一书,接着我们又深入研读了Redis的源码。2018年年初开始,我们开始了Redis源码一书的编写,起初是研读Redis 4.0版本的源码,2018年下半年5.0版本发布,增加了很多的新特性,下半年我们又在之前的基础上结合Redis 5的源码,编写了此书。
Redis是一款高性能的开源key-value型数据库,难能可贵的是代码写得非常优雅,非常适合刚入门C语言的读者阅读。本书前半部分详细介绍了Redis中的各种数据结构,适合读者学习和掌握基本的数据结构;后半部分介绍了Redis命令执行的生命周期,以及各类命令的源码实现,希望使用Redis的读者不止会使用Redis,并且能掌握它的原理和细节,提升对Redis的掌控能力。
决定编写Redis源码一书后,学习圈里方波、黄桃、李乐、施洪宝、熊浩含、闫昌、张仕华、周生政和我一起编写了这本书。大家在工作之外,每天写到深夜,周末一起探讨,经过一年的编写和校对,终于完成了这本书。希望能给使用Redis的读者一些启发,帮助更多的人理解Redis的实现。
读者对象
使用Redis的工程师、架构师
对Redis源码感兴趣的读者
有一定C语言基础的读者
如何阅读本书
本书内容逻辑上分为三篇,共计22章内容。
第一篇:第1章简单介绍了Redis,以及Redis的编译安装和研读的方式;第2~8章重点讲解了SDS、跳跃表、压缩列表、字典、整数集合、quicklist和Stream数据结构的实现。
第二篇:第9章讲解了Redis的生命周期,命令执行的过程,需要重点阅读;第10~19章,分别讲解了键、字符串、散列表、链表、集合、有序集合、GEO、HyperLog和数据流相关命令的实现。
第三篇:第20~22章简单讲解了持久化、主从复制和集群的实现,没有详细展开,希望能带读者入门。
如果读者是有一定经验的资深开发人员,本书可能会是一本不错的案头书。当然,如果读者是一名初学者,请在开始本书阅读之前,建议先掌握一些C语言和网络编程等基础理论知识。
勘误和支持
由于笔者的水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果您有更多的宝贵意见,欢迎访问https://segmentfault.com/u/php7internal进行专题讨论,我们会尽量在线上为读者提供解答。同时,您也可以通过微博@PHP7内核,或者邮箱cltf@163.com联系到我们,期待能够得到您的反馈,在技术之路上互勉共进。
致谢
感谢张国辉、卢红波两位工作导师的支持,前者是我现在的领导,也是我在技术和管理方面的导师,后者是我在滴滴的领导,在技术和管理上给了我很多的指引与帮助。
感谢黑夜路人(谢华亮)兄弟的指导和支持,在技术上给了非常多的指点。
感谢黄健宏、黄鹏程、付磊、钱文品、张晋涛和吴建超兄弟的指导与建议,他们都是在Redis方面有很深研究的人。
感谢方波、黄桃、李乐、施洪宝、熊浩含、闫昌、张仕华和周生政8位兄弟在学习和研究过程中的陪伴与合作,本书是几位兄弟共同合作的结晶。特别是黄桃,已经跟我一起编写了两本书。
特别致谢
最后,我要特别感谢我的太太梦云、儿子和女儿,我为写作这本书,牺牲了很多陪伴她们的时间,但也正因为有了她们的付出与支持,我才能坚持写下去。同时,感谢我的父母、岳父岳母,不遗余力地帮助我们照顾儿女,有了你们的帮助和支持,我才有时间和精力去完成写作工作。
另外要特别感谢我团队的兄弟们,感谢大家的坚持,为大家的成长点赞!重点感谢一下兄弟们背后的太太团,是她们的大力支持,作者们才有时间来编写本书。
最后要重点感谢高婧雅编辑,这是第二次跟她合作,她依然非常负责;她耐心审稿,给出很多宝贵建议,才有了这本书的完成。
谨以此书献给我最亲爱的家人和团队的兄弟们,以及众多热爱Redis的朋友们!

陈 雷

免费在线读

《深入理解XGBoost:高效机器学习算法与进阶》

大数据时代的今天,基于规则解决具体业务问题的传统方式已无法满足企业需求,机器学习与人工智能逐渐走入人们的视野,并迅速得到了众多企业的广泛关注。各大互联网公司相继成立了自己的机器学习研究院,或建立机器学习团队。然而,随着企业业务规模、数据规模日益扩大,业务类型越来越复杂,怎样在短时间内训练出高准确率的模型,成为许多企业面对的挑战。
在机器学习与人工智能的浪潮中,XGBoost凭借高效、便捷、扩展性强等优势,在众多开源机器学习库中脱颖而出,广受各大企业青睐。目前XGBoost已成为热门的机器学习开源项目之一,拥有强大的社区支持,技术也日趋成熟。
为什么要写这本书
最初写这本书的想法萌生于两年前。当时,一些刚接触XGBoost的同事让我推荐学习资料,但我发现除了英文论文和官方文档外,竟找不到一本XGBoost的入门书籍。当然,论文和官方文档是学习XGBoost的重要参考资料,但对于刚接触机器学习的初学者而言,学习这些资料的成本相对较高。如果没有足够的理论基础,初学者容易一开始就被细节和难点缠住,降低学习的积极性。
XGBoost涉及的相关知识较多,资料比较分散,苦于缺乏一个系统、完整的学习教程可以参考,学习者不得不在搜集资料上耗费大量时间。此外,对于XGBoost的应用也少有完整的案例剖析。想深入理解XGBoost的学习者,只能通过研究项目源码的方式进行学习,这显然不是一个特别高效的学习方式。
为了能够深入理解XGBoost中各个组件的实现原理,笔者也花费了很多时间和精力。在阅读了相关论文文档、深入研究源码并多次实践后,积累了很多学习笔记,对XGBoost也有了自己的理解,由此便萌生了将其整理成书的想法。这样既可以帮助更多的人快速了解和学习XGBoost,使自己的学习所得发挥更大的价值,也可以在梳理所学知识的过程中进一步提升。
本书特色
本书是国内少有的系统、全面地介绍XGBoost技术原理的书籍,以通俗易懂的方式对XGBoost的原理和应用进行介绍,力求帮助读者深入理解XGBoost。
(1)讲授循次而进,符合初学者的认知规律。本书首先介绍机器学习中的常用算法,帮助读者直观地理解算法的基本原理,打下良好的理论基础。然后由浅入深,鞭擗向里,带领读者深入探索机器学习前沿技术。
(2)内容涵盖全面,重视理解深度。本书不仅全面覆盖了决策树、Gradient Tree Boosting、目标函数近似、切分点查找算法等常见内容,还详细讲解了分布式实现、排序学习、模型解释性、DART等内容。
(3)案例实用丰富,帮助读者解决实际遇到的机器学习问题。本书在每个算法讲解之后都配有相应的编程示例,不仅使读者理解算法原理,还有助于提升灵活运用算法的能力。
另外,本书可以作为算法开发人员手边的工具书,在学习和工作的过程中随时查阅参考。
读者对象
人工智能领域的算法工程师
人工智能领域的架构师
其他对机器学习感兴趣的人
如何阅读本书
本书共有10章,具体内容如下。
第1章介绍了何谓机器学习和机器学习中的一些基本概念,以及机器学习应用开发的步骤,并对集成学习的历史发展、XGBoost的应用场景及其优良特性进行了概述。
第2章详细讲解了Python机器学习环境的搭建及常用开源工具包的安装和使用,并以一个简单的示例展示XGBoost的使用方法。
第3章讲述了常用机器学习算法的实现原理和应用,如线性回归、逻辑回归、决策树、神经网络、支持向量机等,使读者对机器学习算法有一个整体认知,同时了解如何在模型训练过程中进行优化、如何对模型结果进行评估。
第4章通过scikit-learn与XGBoost相结合,以实际的案例向读者说明如何通过XGBoost解决分类、回归、排序等问题,并介绍了XGBoost中常用功能的使用方法。
第5章深入介绍XGBoost的实现原理,包括Boosting算法思想、XGBoost目标函数近似、切分点查找算法、排序学习、模型可解释性等内容,从理论上保证XGBoost的有效性,使读者深入理解XGBoost。
第6章详细介绍了分布式XGBoost的实现原理,包括分布式机器学习框架Rabit,XGBoost在Spark、Flink平台的实现,GPU版本的实现等。
第7章从源码的角度深入剖析了XGBoost中各个组件的实现原理,详细介绍了模型训练、预测、解析,以及不同目标函数和评估函数的实现过程。
第8章详细介绍了如何通过模型选择与优化提高模型的泛化能力,从偏差和方差的角度进行了解释,通过交叉验证和Bootstrap等方法来说明模型选择过程,并介绍了常用的超参数优化方法。
第9章通过实际案例分析,使读者能够深入理解XGBoost的特性并灵活运用,能够依据不同场景将XGBoost与其他模型融合,更好地解决实际问题。
第10章介绍了业界或学术界中树模型与其他模型融合的一些研究方法,包括GBDT LR,多层GBDT模型结构mGBDT,树模型与深度学习、强化学习的融合等。
如果你是具有一定机器学习理论基础的从业者,可以跳过前4章的基础部分,直接从第5章开始阅读。如果你是一位机器学习的初学者,并打算在未来深入钻研这个方向,建议系统地阅读本书,并动手实践书中的所有实例。
勘误和支持
由于笔者水平有限,编写时间仓促,书中难免存在一些错误或表达不准确之处,恳请读者批评指正。如果你有更多的宝贵意见,可通过电子邮箱xgbbook2019@163.com联系我,期待得到你们的真挚反馈,让我们在技术之路上互勉共进。

何龙

滴滴技术大牛带你学数据库与XGBoost套装 套装共2册 pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:滴滴技术大牛带你学数据库与XGBoost套装 套装共2册