描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787568089784丛书名: 无
适合程序员读的机器学习教程,通过游戏和趣味问题讲解机器学习的思路和方法,附有动画演示,无需深奥的数学知识,轻松掌握机器学习概念和技巧。美国亚马逊书店5星图书。
自动驾驶汽车、自然语言识别、内容推荐引擎的实现都离不开人工智能和机器学习算法。机器学习算法只有在解决具体问题时才能体现价值。本书以解决各种趣味问题为目标,教读者用Python、JavaScript、C 编写机器学习算法,内容深入浅出,兼具实用性与大局观。读者将学习编写遗传算法、启发式算法、爬山算法、模拟退火算法,运用蒙特·卡洛模拟、点格自动机、适应函数解决问题。本书尤其适合对人工智能和机器学习感兴趣的程序员进阶学习。
第 1 章 逃出纸口袋 1
1.1 开始 3
1.1.1 逃出纸口袋 4
1.2 目标:寻找出路 5
1.3 帮助乌龟逃脱 6
1.3.1 乌龟和纸口袋 7
1.4 拯救乌龟 8
1.4.1 正方形 9
1.4.2 角螺旋 10
1.4.3 该逃脱了 11
1.5 算法有效吗 12
1.6 拓展学习 14
第 2 章 寻找纸口袋 17
2.1 从数据中学习 18
2.1.1 划分数据 21
2.2 生成决策树的方法 22
2.2.1 选取最佳特征 22
2.3 找到纸口袋 28
2.3.1 寻找分割点 29
2.3.2 构建决策树 30
2.3.3 数据分类 31
2.3.4 将决策树转为规则集 32
2.4 算法有效吗 33
2.4.1 如何剪枝36
2.5 拓展学习38
第 3 章 遗传算法 39
3.1 发射炮弹41
3.2 解的生成方法44
3.2.1 算法的初始化 44
3.2.2 算法的迭代45
3.2.3 如何让解变得更好45
3.2.4 最终决策46
3.3 发射炮弹47
3.3.1 随机初始化48
3.3.2 选择过程48
3.3.3 交叉 53
3.3.4 突变 54
3.4 算法有效吗56
3.4.1 画图 56
3.4.2 记录 60
3.4.3 突变测试60
3.4.4 遗传算法的变体 62
3.5 拓展学习63
第 4 章 粒子群算法 65
4.1 控制粒子群67
4.1.1 移动单个粒子 67
4.1.2 移动多个粒子 71
4.1.3 粒子群75
4.2 粒子群的生成76
4.2.1 跟随邻近粒子 77
4.2.2 跟随最好位置 78
4.3 创建粒子群80
4.3.1 跟随邻近粒子 80
4.3.2 跟随最好位置 83
4.4 算法有效吗 88
4.5 拓展学习 90
第 5 章 寻找路线 91
5.1 释放信息素 92
5.1.1 使用信息素 94
5.2 怎样生成路线 96
5.3 让蚂蚁行动起来 98
5.3.1 随机初始化 98
5.3.2 画路线 102
5.3.3 迭代优化路线 103
5.4 算法有效吗 107
5.4.1 从同一点出发 107
5.4.2 随机从不同点出发 109
5.4.3 α和β的选择 109
5.4.4 其他参数 111
5.5 拓展学习 112
第 6 章 运用随机模型 113
6.1 让粒子随机运动 114
6.1.1 蒙特卡洛模拟 114
6.1.2 布朗运动 117
6.1.3 几何布朗运动 122
6.1.4 跳跃扩散 123
6.2 如何产生扩散 125
6.2.1 小随机步长 125
6.2.2 用 C 画图 126
6.3 让粒子扩散开 127
6.3.1 布朗运动 128
6.3.2 股票价格 133
6.4 算法有效吗 137
6.4.1 基于特性的测试 139
6.5 拓展学习143
第 7 章 蜂群算法 145
7.1 养蜂 146
7.1.1 让蜜蜂行动起来 146
7.1.2 蜜蜂的分工147
7.1.3 算法总览 149
7.2 算法分析150
7.2.1 算法细节 150
7.2.2 摇摆舞152
7.3 让蜜蜂飞起来 152
7.3.1 蜂群算法的实现 153
7.3.2 蜂群算法的可视化161
7.4 算法有效吗164
7.5 拓展学习166
第 8 章 元胞自动机167
8.1 让元胞活起来 169
8.2 创造人工生命 172
8.2.1 算法细节 173
8.3 实现元胞自动机 175
8.4 算法有效吗182
8.5 拓展学习183
第 9 章 遗传算法与元胞自动机185
9.1 找到最好的配置 186
9.2 遗传算法在元胞自动机上的工作方式190
9.3 找到最优初始排列193
9.3.1 交叉 197
9.3.2 突变 201
9.3.3 运行遗传算法 202
9.3.4 初等元胞自动机 204
9.3.5 随机规则 206
9.4 算法有效吗 207
9.4.1 初等元胞自动机 209
9.4.2 随机规则 211
9.5 拓展学习 212
第 10 章 找到最优解 215
10.1 移动乌龟 216
10.2 乌龟怎么走 217
10.2.1 爬山法 218
10.2.2 模拟退火算法 220
10.3 寻找口袋底部 222
10.3.1 用函数表示口袋形状 223
10.3.2 爬山法 224
10.3.3 模拟退火算法 225
10.4 算法有效吗 228
10.4.1 爬山法 229
10.4.2 模拟退火算法 231
10.5 更高维度的情况 233
10.6 拓展学习 237
参考文献 239
不知道你有没有听说过一个说法——“编程逃出纸口袋”(译注:原文为Coding your way out of a paper bag,way out of a paper bag是俚语,用来比喻容易的事。这个短语常用于否定句,比如someone is not able to code their way out of a paper bag,意思是有些人毫无编程经验。作者在这里将这个短语用作双关语,一来表示本书将帮助读者轻松掌握机器学习的概念与算法,二来作者确实在例子里用到了纸口袋)。本书将教你用各种机器学习算法帮助粒子、蚂蚁、蜜蜂,甚至乌龟逃离纸口袋。这个比喻听起来有点怪,但这种方式很适合演示算法。读者对象如果你是初学者或刚入门的程序员,想学习机器学习算法,那么这本书很适合你。你将学习遗传算法(genetic algorithm)、自然启发的粒子群算法(nature-inspired swarm)、蒙特卡洛模拟(Monte Carlo simulation)、元胞自动机(cellular automata),还有聚类(cluster)。除此以外,你还将学习测试代码。本书内容阅读本书,你将学习:? 运用启发式算法(heuristics)解决问题并设计适应度函数(fitness function)。? 构建遗传算法(genetic algorithm)。? 构建受自然启发的粒子群算法(nature-inspired swarms)。? 用蒙特卡洛模拟(Monte Carlo simulation)进行统计模拟。? 了解元胞自动机(cellular automata)的概念。? 使用爬山法(hill climbing)和模拟退火算法(simulated annealing)找到函数的极值。? 尝试各种选择算法,包括锦标赛法(tournament selection)和转轮赌选择法(roulette selection)。? 掌握启发式算法、适应度函数、衡量指标和聚类的知识。你还会学习测试代码,举一反三地解决新问题,因地制宜地采用编程策略——这是称职的程序员必须具备的素质。除此之外,你还会借助可视化代码观察算法是如何通过学习来解决问题的。衷心希望这本书能对你未来的机器学习项目有所启发。在线资源受篇幅所限,书中代码有所省略。本书官网有完整的代码下载 。书中代码采用C (C 11及以上版本)、Python(2.x或3.x)和JavaScript(用于操作HTML5 canvas)编写。代码还会用到一些开源库,包括matplotlib、SFML、Catch、Cosmix-Ray。这些绘图库和测试库不是必需的,但是能带来更完整的学习体验。你也可以根据算法描述,用你喜欢的语言编程,而不必拘泥于书中的代码。Frances Buontempo
总算有一本把机器学习讲清楚的书了。从头到尾一点不含糊,感谢作者!
——T.R. Hinton,美国亚马逊读者
例子很有趣,现在我不仅知道怎么解决问题,而且明白了为什么要这样做!
——Hans,美国亚马逊读者
所有例子都有可示化代码,不罗列概念,不掉书袋,图文并茂,好书!
——Fun Gus,美国亚马逊读者
我喜欢动手实践,这本书的难度很适合我!
——Mr. Skeptical,美国亚马逊读者
评论
还没有评论。