描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111690337丛书名: 华章程序员书库
本书致力于利用算法求解实际问题。第1部分介绍算法的核心内容,探讨什么是算法、如何设计算法,同时学习在算法中使用的数据结构。重点讲解排序算法、查找算法和求解图问题的算法。第二部分讨论各种机器学习算法,包括无监督机器学习算法和传统有监督学习算法,详细讨论一些自然语言处理算法和推荐引擎。第三部分讨论更高级的算法概念,重点介绍了密码算法和大规模算法。本书还包含一些案例分析(如天气预测、推文聚类和电影推荐引擎),用来说明如何才能更好地应用这些算法。
译者序
前言
关于作者
关于审校者
部分 基础与核心算法
第1章 算法概述2
1.1 什么是算法2
1.2 描述算法逻辑4
1.2.1 理解伪代码4
1.2.2 使用代码片段6
1.2.3 制定执行计划6
1.3 Python包简介7
1.3.1 Python包8
1.3.2 通过Jupyter Notebook执行Python9
1.4 算法设计技术10
1.4.1 数据维度11
1.4.2 计算维度12
1.5 性能分析13
1.5.1 空间复杂度分析13
1.5.2 时间复杂度分析14
1.5.3 性能评估14
1.5.4 选择算法15
1.5.5 大O记号15
1.6 验证算法19
1.6.1 精确算法、近似算法和随机算法19
1.6.2 可解释性20
1.7 小结20
第2章 算法中的数据结构21
2.1 Python中的数据结构21
2.1.1 列表22
2.1.2 元组26
2.1.3 字典27
2.1.4 集合28
2.1.5 数据帧30
2.1.6 矩阵32
2.2 抽象数据类型33
2.2.1 向量33
2.2.2 栈34
2.2.3 队列36
2.2.4 栈和队列背后的基本思想37
2.2.5 树38
2.3 小结40
第3章 排序算法和查找算法41
3.1 排序算法简介41
3.1.1 在Python中交换变量42
3.1.2 冒泡排序42
3.1.3 插入排序44
3.1.4 归并排序46
3.1.5 希尔排序48
3.1.6 选择排序50
3.2 查找算法简介51
3.2.1 线性查找52
3.2.2 二分查找52
3.2.3 插值查找53
3.3 实际应用54
3.4 小结56
第4章 算法设计57
4.1 算法设计基本概念57
4.1.1 点—所设计算法是否能产生预期的结果58
4.1.2 第二点—所设计算法是否是获取结果的方法58
4.1.3 第三点—所设计算法在更大的数据集上表现如何61
4.2 理解算法策略61
4.2.1 分治策略62
4.2.2 动态规划策略64
4.2.3 贪心算法64
4.3 实际应用—求解TSP65
4.3.1 使用蛮力策略66
4.3.2 使用贪心算法68
4.4 PageRank算法70
4.4.1 问题定义70
4.4.2 实现PageRank算法70
4.5 了解线性规划73
4.6 实例—用线性规划实现产量规划73
4.7 小结76
第5章 图算法77
5.1 图的表示77
5.1.1 图的类型79
5.1.2 特殊类型的边81
5.1.3 自我中心网络82
5.1.4 社交网络分析82
5.2 网络分析理论简介83
5.2.1 理解短路径83
5.2.2 创建邻域84
5.2.3 理解中心性度量85
5.2.4 用Python计算中心性指标87
5.3 理解图的遍历88
5.3.1 广度优先搜索89
5.3.2 深度优先搜索92
5.4 实例—欺诈分析93
5.4.1 进行简单的欺诈分析96
5.4.2 瞭望塔欺诈分析法97
5.5 小结99
第二部分 机器学习算法
第6章 无监督机器学习算法102
6.1 无监督学习简介102
6.1.1 数据挖掘生命周期中的无监督学习103
6.1.2 无监督学习的当前研究趋势105
6.1.3 实例106
6.2 理解聚类算法107
6.2.1 量化相似性107
6.2.2 分层聚类113
6.2.3 评估聚类效果115
6.2.4 聚类算法的应用115
6.3 降维116
6.3.1 主成分分析116
6.3.2 主成分分析的局限性118
6.4 关联规则挖掘119
6.4.1 实例119
6.4.2 市场购物篮分析119
6.4.3 关联规则120
6.4.4 排序规则122
6.4.5 关联分析算法123
6.5 实例—聚类相似推文127
6.5.1 主题建模128
6.5.2 聚类128
6.6 异常检测算法129
6.6.1 基于聚类的异常检测129
6.6.2 基于密度的异常检测129
6.6.3 基于支持向量机的异常检测129
6.7 小结130
第7章 传统监督学习算法131
7.1 理解监督机器学习131
7.1.1 描述监督机器学习132
7.1.2 理解使能条件134
7.1.3 区分分类器和回归器134
7.2 理解分类算法135
7.2.1 分类器挑战性问题135
7.2.2 评估分类器139
7.2.3 分类器的各个阶段142
7.2.4 决策树分类算法143
7.2.5 理解集成方法146
7.2.6 逻辑回归149
7.2.7 支持向量机算法151
7.2.8 理解朴素贝叶斯算法153
7.2.9 各种分类算法的胜者156
7.3 理解回归算法156
7.3.1 回归器挑战性问题156
7.3.2 线性回归158
7.3.3 回归树算法162
7.3.4 梯度提升回归算法163
7.3.5 各种回归算法的胜者163
7.4 实例—预测天气164
7.5 小结166
第8章 神经网络算法167
8.1 理解人工神经网络168
8.2 人工神经网络的演化169
8.3 训练神经网络171
8.3.1 解析神经网络结构171
8.3.2 定义梯度下降172
8.3.3 激活函数173
8.4 工具和框架178
8.4.1 Keras178
8.4.2 理解TensorFlow181
8.4.3 理解神经网络的类型183
8.5 迁移学习185
8.6 实例—用深度学习实现欺诈检测186
8.7 小结189
第9章 自然语言处理算法190
9.1 自然语言处理简介190
算法一直在计算科学和计算实践中发挥着重要作用。本书致力于利用算法求解实际问题。为了限度地利用算法,必须深入理解算法背后的逻辑和数学知识。我们先概要地介绍算法,并探索各种算法设计技术。接下来,学习线性规划算法、PageRank算法、图算法以及机器学习算法。本书还包含一些案例(如天气预测、推文聚类和电影推荐引擎),用来说明如何才能地应用这些算法。通过学习本书,你将对使用算法求解实际计算问题充满信心。
读者对象
本书为程序员而写!无论你是希望深刻理解算法背后的数学知识的经验丰富的程序员,还是希望了解如何利用经过实践检验的算法来改进代码设计和编写方式的经验不足的程序员,阅读本书都大有裨益。在阅读本书前必须具有Python编程经验,数据科学知识对阅读本书有帮助,但不是必需的。
本书内容
第1章概述算法基础。1.1节介绍理解不同算法如何工作所需的基本概念,概述人们初如何用算法以数学的形式表达特定类型的问题,还提到不同算法的局限性。1.2节讲述描述算法逻辑的各种方法。由于本书用 Python编写算法,1.3节说明如何设置环境以运行书中给出的例子。1.4节介绍算法设计技术。1.5节讨论如何用不同方法量化算法性能,并与其他算法进行比较。1.6节讨论验证算法的特定实现的各种方法。
第2章着重讲述算法中用于存储临时数据的内存数据结构。算法可能是数据密集型的,也可能是计算密集型的,或者既是数据密集型的又是计算密集型的。对于所有不同类型的算法,选择恰当的数据结构对其实现而言至关重要。许多算法具有递归和迭代逻辑,因而需要面向这种本征逻辑的专用数据结构。由于本书用 Python编写算法,这一章主要关注实现书中算法所需的 Python 数据结构。
第3章给出用于排序和查找的核心算法。这些算法在后面将作为其他更复杂算法的基础。本章先讲述不同类型的排序算法,包括各种算法的性能比较。然后,讲述各种查找算法,量化这些算法的性能和复杂度,并进行比较。后,讲述这些算法的实际应用。
第4章讲述设计各种算法所需的核心概念,阐述各种算法并讨论它们的优缺点。理解这些概念对设计的复杂算法而言至关重要。这一章先讨论不同类型的算法设计,然后求解著名的旅行商问题。之后讨论线性规划及其局限性。后,用实例展示如何用线性规划进行产量规划。
第5章着重讲述常见于计算机科学中的图算法。图是许多计算问题的模型。本章讲述表示和搜索图的各种方法。搜索图意味着用系统化的方法沿图中的边访问图中的顶点。图搜索算法可以发现图的很多结构。很多算法都通过在输入图上执行搜索算法来获得结构信息。其他几个图算法都是基本图搜索算法的细化。图的搜索技术是图算法领域的核心。该章首先讨论图的两种常见的计算表示:邻接表和邻接矩阵。接下来,讲述广度优先搜索这种简单的图搜索算法,并说明如何创建广度优先搜索树。然后讲述深度优先搜索,并给出深度优先搜索算法访问顶点顺序的标准结论。
第6章讨论无监督机器学习算法。之所以被归类为无监督方法,是由于这些模型或算法在无监督条件下从给定数据中学习固有的结构、模式和关系。我们先讨论聚类方法,这种机器学习方法基于固有的属性或特征,试图从数据集的数据样本中找出相似性模式和关系模式,然后把数据样本划分为集群,使得各个集群内的数据样本具有相似性。接下来,讨论降维算法,该算法用于处理特征较多的问题。之后,讨论关联规则挖掘算法,它们属于数据挖掘方法,用于检查和分析大规模交易数据集,以发现有意义的模式和规则,而这些模式表示了跨交易的各种商品之间有意义的关系和关联。后,讨论处理异常检测的算法。
第7章描述与一组机器学习问题相关的传统监督机器学习算法。这些问题中的标记数据集具有输入属性和相应的输出标签或类别。这些输入和其相应的输出用于学习一个一般性系统,该系统用于预测不在数据集中的其他数据点的结果。我们先从机器学习的角度概述分类的相关概念。接下来,讨论重要的算法之一—决策树,给出决策树算法的局限性和优势。接着介绍支持向量机和XGBoost这两种重要的算法。后,讨论线性回归这种简单的机器学习算法。
第8章首先介绍典型神经网络这种重要的机器学习技术的主要概念和组成部分。然后介绍各种神经网络,并阐述用于实现这些神经网络的激活函数。之后,详细讨论反向传播算法,这是目前应用广泛的训练神经网络的收敛算法。接下来,介绍迁移学习技术,它可以大大简化模型训练并部分地使其自动化。后,给出一个学习实例,讨论如何在现实世界中利用深度学习进行欺诈检测。
第9章介绍自然语言处理算法,从理论到实践循序渐进地展开。首先介绍基础知识,然后讨论背后的数学知识。接下来,介绍一种流行的神经网络,它广泛应用于设计和实现文本数据上的重要用例。此外,还介绍自然语言处理算法的局限性。后,给出一个案例,讨论如何在自然语言处理领域训练机器学习模型,以进行电影评论情感分析。
第10章重点讨论推荐引擎,它先用与用户偏好相关的信息建立模型,然后基于模型和信息向
评论
还没有评论。