猜你喜欢
大数据时代的算法:机器学习、人工智能及其典型实例

大数据时代的算法:机器学习、人工智能及其典型实例

书籍作者:刘凡平 ISBN:9787121304293
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:8926
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书介绍在互联网行业中经常涉及的算法,包括排序算法、查找算法、资源分配算法、路径分析算法、相似度分析算法,以及与机器学习相关的算法,包括数据分类算法、聚类算法、预测与估算算法、决策算法、关联规则分析算法及推荐算法。本书涉及的相关算法均为解决实际问题中的主流算法,对于工作和学习都有实际参考意义。本书是一本算法领域内的技术参考书籍,涵盖数十种算法,通过由浅入深的介绍基础算法和机器学习算法相关理论和应用,阐述了各个算法的应用场景及算法复杂度,使读者对算法的理解不只是停留在表面,还从应用的角度提供了大量实例,使读者能够快速、高效进阶各类算法,并能够熟练应用到将来的工作实践中。

作者简介
刘凡平,硕士,毕业于中国科学技术大学软件系统设计专业。曾任职微软亚太研发集团,从事互联网广告与分布式实时计算相关研发工作。后任职百度(中国)有限公司,并担任高级研发工程师。擅长于搜索引擎、大数据分析、分布式计算等相关研发工作,曾出版《大数据搜索引擎原理分析及编程实现》,是Iveely开源搜索引擎的主要贡献者之一,也是执着于将互联网技术演绎为艺术的完美追求者。
编辑推荐
适读人群 :对大数据算法感兴趣的人。

面向实际:针对现实中的问题,给出对应算法

底层讲解:详细讲解了算法的设计思路,体会大师的思想

涵盖面广:囊括常用的53种算法,用以解决各类问题

应用广泛:可用在数据挖掘、商务智能、广告与商品推荐等多个领域


前言

致 谢

本书的内容来自于我对日常学习和工作的总结,我要感谢本人曾经的导师于炯教授、叶勇教授,以及在微软和百度工作时的前辈王明雨、何绍建、黄诚,正是你们对我的悉心指导,才能使我有能力和勇气写出这本书,无论你们在哪里,凡平永远心存感激。当然还有那些曾经一起学习的同学、共事的朋友,你们曾经给予我很多无私的帮助,使我在和你们相处的过程中能够快速成长,感谢一路上有你们的陪伴,正是有你们,沿途的风景才格外美丽。

感谢英国的Peter Boden先生,虽然我们素未谋面,但是你却一直支持我们团队去实现自己的梦想,并连续两年无偿支持我们在Github开源社区的项目。在开源项目中,我们实现了不少有一定难度的算法,如果没有你的支持,也许我们不能正常完成相关的研发任务,更不可能去挑战搜索引擎中各类算法,尤其在人工智能领域的算法,对你的感激之情溢于言表。

感谢我的创业伙伴魏琪,当我提出我们一起研究人工智能技术时,你毫不犹豫地选择了和我一起艰苦创业。无论处在创业的何种困难期,你总是为团队加鼓气,你踏实和认真的工作态度让我钦佩不已,感谢你为本书的技术细节提出了真知灼见的修改意见,还有我一起工作的同学和朋友都对本书提出了改进意见,对此也表示深深的感谢。

感谢北京源智天下公司的吉老师及电子工业出版社的各位编辑,对本书的内容都给予了极大的帮助,对本书的出版也付出了辛苦汗水。

衷心感谢我的家人,感谢你们在过去一年中对我的理解和支持,为我营造了一个良好的写作环境,并鼓励我坚持认真写作,使本书能够顺利完成。

本书编写过程中还得到了很多朋友的支持和帮助,限于篇幅,虽然不能一一对你们表示感谢,但是我对你们一样表示感激。

最后,感谢这个时代给予每位有理想的人,赋予实现人生价值的机会!




前 言

中国在很早就开始了算法研究,如《周髀算经》、《九章算术》这类最具历史的算法书籍,以及后来的唐宋元明清各历史朝代也出现了如《一位算法》、《算法绪论》、《算法全书》、《算法统宗》等一系列算法名著,算法已经成为各行各业的基础研究。

本书通过介绍在互联网行业中经常涉及的算法包括排序算法、查找算法、资源分配算法、路径分析算法、相似度分析算法,以及与机器学习相关的算法包括分类算法、聚类算法、预测与估算算法、决策算法、关联规则分析算法及推荐算法。本书是一本算法领域内的技术手册,涵盖数十种算法,不仅使读者深入了解各类算法的基本理论,还从应用的角度为读者提供大量实例,使读者能够快速、高效进阶各类算法,并能够熟练应用到将来的工作实践中。

本书特色

本书不仅将目前工程应用中主流的基础算法和机器学习算法都做了详尽的介绍,还囊括了当前热门算法内容,如分类算法、聚类算法、推荐算法等。本书充分利用了最新算法的应用研究结果,从实例的角度为读者展现一个清晰的算法应用,不拘泥于算法枯燥的理论,更多地从实用价值、工程价值的角度呈现给读者。

本书中的算法可以广泛应用于各个领域,可以在自然语言处理研究、数据分析与挖掘、商务智能、广告与商品推荐等领域中深入应用。作者秉承数据结合算法产生价值的理论体系,在介绍算法的同时与数据紧密关联,并结合多年实际工作经验,将算法的内容阐述淋漓尽致。本书中的算法研究在当前甚至未来相当一段时间内都具有很高的实际意义。

本书结构

本书按照由浅入深、循序渐进的顺序对现代搜索引擎原理和实现进行介绍。全书共分为两大部分,共十个章节。第一部分主要针对基础领域算法的介绍和应用,包含第1章到第4章;第二部分主要针对机器学习领域算法的理论认识和实例解析,包含第5章到第10章。全书各章的主要内容如下。

第1章 算法基础

本章从算法的分析类型,如从分治法、动态规划、回溯法、分支限界法、贪心法,入手开始介绍算法内容,不仅如此还分析了算法的性能,并介绍了概率论与数理统计基础部分的内容。同时,还对算法中常用的距离计算算法、排序算法及字符串压缩编码也做了完整介绍。

第2章 数据查找与资源分配算法

本章以数据的查找和资源分配作为突破口,介绍了常用的数值查找算法,如二分查找算法、分块查找及哈希查找算法。除此之外,还介绍了常见的字符串查找算法及在海量数据中的查找算法:布隆过滤器和倒排索引查找。介绍了资源分配算法,包括常用的银行家算法和背包问题的解决算法。

第3章 路径分析算法

本章介绍的内容主要集中在路径规划算法上,包括基于Dijkstra算法、Floyd算法、A*算法的路径分析方法。除了介绍传统的路径规划算法外,还介绍了维特比算法在概率中的路径选择,以及最长公共子串、最长公共子序列问题的求解算法。整个内容涵盖了绝大部分的路径选择算法。

第4章 相似度分析算法

本章介绍的内容主要集中在相似内容的分析理论和应用,从简单的Jaccard相似系数开始入手,逐步深入到MinHash相似性算法,以及后续的向量空间模型,向量空间模型已经成为众多算法的基础理论。后续还深入介绍了余弦相似性算法和基于语义主题模型的语义相似度计算方法,以及基于SimHash的指纹码重复值验证算法。

第5章 数据分类算法

本章集中介绍了数据分类算法的解决方案,从简单易于理解的朴素贝叶斯模型开始,由浅入深地介绍AdaBoost分类器及支持向量机,它们都是数据分类的有效解决方案,还对机器学习的相关基础知识做了概要介绍。最后还介绍了K邻近算法在数据分类中的应用。

第6章 数据聚类算法

本章介绍了数据聚类的相关算法,其中,无监督的聚类算法目前是研究比较热门的领域。首先介绍了传统的基于系统聚类的方法;然后介绍了基于距离计算的K-Means聚类算法及基于密度的DBSCAN算法;最后还介绍了基于BIRCH算法的聚类分析,通过聚类特征及聚类特征实现数据聚类。

第7章 数据预测与估算算法

本章介绍了数据的预测和估算的算法体系和应用范例,从产生式模型和判别式模型入手介绍各类模型的方法论。首先介绍了基于最大似然估计的预测算法,以及基于线性回归的方法、最大期望算法;然后介绍了基于隐马尔科夫模型的问题预测模型;最后介绍了基于隐马尔科夫模型的条件随机场模型。

第8章 数据决策分析算法

本章对数据决策的分析方法做了详细介绍,主要围绕决策树的理论基础展开介绍。首先介绍了基于ID3算法的决策树分析,包括信息熵、信息增益等;然后介绍了基于ID3算法扩展的C4.5算法及分类回归树模型;最后还介绍了随机森林在决策分类中的应用。介绍过程中包含了大量实例。

第9章 数据关联规则分析算法

本章主要介绍了关联规则分析方法的理论和实践。Apriori算法作为最常用的关联规则分析算法已经被广泛应用到各个领域,本章也对Apriori算法进行了深入的介绍,并对和Apriori算法同等重要的FP-Growth算法也通过实例做了详细介绍。本章最后还介绍了利用倒排文件思想的Eclat算法。

第10章 数据与推荐算法

本章主要介绍了数据与推荐算法中的应用关系,推荐算法作为目前各行各业最热门的算法之一,已经应用非常广泛。本章介绍了基于物品本身属性关系的Item-Based协同过滤推荐算法,以及基于人群的User-Based协同过滤推荐算法。除此之外,还介绍了基于流行度和潜在因子的推荐算法,以及推荐算法的效果评估相关内容。

本书通过对数据与算法相关理论介绍和应用,将理论和实际应用结合,并阐述了各个算法的应用场景及算法复杂度,使读者对算法的理解不仅停留在表面。由浅入深地将基础算法和机器学习算法成熟应用到各个领域,达到游刃有余的状态。但因为每个算法都存在一定的缺点,所以希望读者能充分了解、掌握各个算法,将算法的作用发挥到极致。

除此之外,读者也能够从本书中快速、高效地从大量数据中找出所需要的数据或其他信息,这在大数据时代起到了非常重要的作用,给读者带来极大的便利。

读者对象

? 适合对基本算法和机器学习算法有兴趣的读者。

? 适合于对数据分析和统计学有兴趣的读者。

? 适合于对算法有研究的基础算法、机器学习工程师。

? 适合互联网行业的不同层次从业者。

? 适合于在校学习的软件或计算机专业的大学生。


目录

第1章 算法基础 1
1.1 基础算法分析类型 1
1.1.1 分治法 1
1.1.2 动态规划法 2
1.1.3 回溯法 3
1.1.4 分支限界法 4
1.1.5 贪心法 4
1.2 算法性能分析 5
1.3 概率论与数理统计基础 6
1.4 距离计算 8
1.4.1 欧氏距离 8
1.4.2 马氏距离 9
1.4.3 曼哈顿距离 9
1.4.4 切比雪夫距离 9
1.4.5 闵氏距离 9
1.4.6 海明距离 10
1.5 排序算法 10
1.5.1 快速排序 11
1.5.2 归并排序 11
1.5.3 堆排序 13
1.5.4 基数排序 15
1.5.5 外排序 16
1.6 字符压缩编码 17
1.6.1 哈夫曼编码 17
1.6.2 香农-范诺编码 21
1.7 本章小结 24
第2章 数据查找与资源分配算法 25
2.1 数值查找算法 25
2.1.1 二分搜索算法 25
2.1.2 分块查找 27
2.1.3 哈希查找 28
2.2 字符串查找算法 30
2.2.1 Knuth-Morris-Pratt算法 31
2.2.2 Boyer-Moore算法 34
2.2.3 Sunday算法 37
2.3 海量数据中的查找 39
2.3.1 基于布隆过滤器查找 39
2.3.2 倒排索引查找 41
2.4 银行家算法 43
2.5 背包问题 45
2.5.1 0-1背包问题 45
2.5.2 部分背包问题 47
2.6 本章小结 47
第3章 路径分析算法 49
3.1 基于Dijkstra算法的路径分析 49
3.1.1 应用示例:极地探险 49
3.1.2 基于Dijkstra的最短路径规划 50
3.2 基于Floyd算法的路径分析 53
3.2.1 应用示例:任意两个城市之间的最短路径 53
3.2.2 Floyd原理 54
3.2.3 基于Floyd算法计算两个城市最短距离 56
3.3 基于A*算法的路径搜索 58
3.3.1 应用实例:绕过障碍区到达目的地 58
3.3.2 A*算法与最短距离计算 59
3.4 基于维特比算法的概率路径 61
3.4.1 应用实例:推断天气状态 61
3.4.2 维特比算法思想 62
3.4.3 计算天气状态 62
3.5 最长公共子序列问题 64
3.5.1 概要 64
3.5.2 最长公共子串 64
3.5.3 最长公共子序列原理 66
3.5.4 实例:求两字符串的最长公共子序列 66
3.6 本章小结 68
第4章 相似度分析算法 69
4.1 应用实例:海量网页相似度分析 69
4.2 基于Jaccard相似系数的相似度计算 70
4.2.1 计算流程 70
4.2.2 狭义Jaccard相似系数 71
4.2.3 广义Jaccard相似系数 71
4.3 基于MinHash的相似性算法 71
4.3.1 与Jaccard相似性关系 71
4.3.2 计算网页文本相似性过程 72
4.4 向量空间模型 73
4.4.1 词袋模型 73
4.4.2 TF-IDF算法 74
4.5 基于余弦相似性算法的相似度分析 76
4.5.1 原理基础 76
4.5.2 公式解析 77
4.5.3 计算网页文本相似性过程 77
4.6 基于语义主题模型的相似度算法 78
4.7 基于SimHash算法的指纹码 80
4.7.1 SimHash引入 81
4.7.2 SimHash的计算流程 81
4.7.3 计算重复信息 83
4.8 相似度算法的差异性 84
4.9 本章小结 85
第5章 数据分类算法 86
5.1 基于朴素贝叶斯分类器 86
5.1.1 有监督分类与无监督分类 87
5.1.2 应用实例:识别车厘子与樱桃 88
5.1.3 分类流程归纳 91
5.1.4 应用扩展:垃圾邮件识别 92
5.1.5 常用评价指标 96
5.2 基于AdaBoost分类器 100
5.2.1 AdaBoost概述 100
5.2.2 AdaBoost算法具体流程 101
5.2.3 AdaBoost算法的应用实例 102
5.2.4 AdaBoost算法的优点 105
5.3 基于支持向量机的分类器 105
5.3.1 线性可分与线性不可分 106
5.3.2 感知器 107
5.3.3 支持向量机 108
5.4 基于K邻近算法的分类器 109
5.4.1 应用实例:电影观众兴趣发现 109
5.4.2 核心思想 109
5.4.3 电影观众兴趣发现 110
5.5 本章小结 113
第6章 数据聚类算法 115
6.1 采用系统聚类法 115
6.1.1 概述 116
6.1.2 最短距离法 117
6.1.3 重心聚类法 119
6.1.4 动态聚类法 120
6.2 基于K-Means聚类算法 122
6.2.1 应用实例:新闻聚类 122
6.2.2 逻辑流程 123
6.2.3 实现新闻聚类分析 124
6.2.4 K-Means++ 128
6.2.5 K-中心点聚类算法 129
6.2.6 ISODATA聚类算法 130
6.3 基于密度的DBSCAN算法 131
6.4 基于BIRCH算法的聚类分析 133
6.4.1 聚类特征 133
6.4.2 聚类特征树 134
6.5 聚类与分类差异 135
6.6 本章小结 136
第7章 数据预测与估算算法 137
7.1 产生式模型与判别式模型 137
7.2 基于最大似然估计的预测 138
7.3 基于线性回归的估算 140
7.3.1 概要 140
7.3.2 最小二乘法 141
7.4 基于最大期望算法分析 143
7.5 基于隐马尔科夫模型预测 144
7.5.1 应用实例:高温天气与行为概率 144
7.5.2 原理分析 145
7.5.3 高温天气与行为概率 147
7.6 基于条件随机场的序列预测 151
7.6.1 应用实例 151
7.6.2 原理分析 151
7.6.3 条件随机场的优缺点 153
7.7 本章小结 154
第8章 数据决策分析算法 155
8.1 基于ID3算法的决策分析 156
8.1.1 信息量 156
8.1.2 信息熵 156
8.1.3 信息增益 157
8.1.4 ID3算法流程 157
8.1.5 ID3算法的应用 157
8.2 基于C4.5算法的分类决策树 159
8.2.1 概要 159
8.2.1 应用实例 159
8.3 基于分类回归树的决策划分 161
8.3.1 概要 162
8.3.2 应用实例:决策划分 163
8.3.2 剪枝 164
8.4 基于随机森林的决策分类 168
8.4.1 随机森林的特点 169
8.4.2 随机森林的构造方法 169
8.4.3 应用实例:决定车厘子的售价层次 170
8.5 本章小结 172
第9章 数据关联规则分析算法 174
9.1 基于Apriori算法的关联项分析 174
9.1.1 应用实例:超市的货架摆放问题 175
9.1.2 基本概要 175
9.1.3 算法原理 176
9.1.4 有效摆放货架 176
9.2 基于FP-Growth算法的关联性分析 179
9.2.1 构建FP树 179
9.2.2 频繁项分析 181
9.2.3 与Apripri算法比较 184
9.3 基于Eclat算法的频繁项集挖掘 184
9.4 本章小结 185
第10章 数据与推荐算法 187
10.1 概要 187
10.1.1 推荐算法发展 188
10.1.2 协同过滤推荐 189
10.2 基于Item-Based协同过滤推荐 190
10.2.1 Item-Based基本思想 190
10.2.2 Slope One实例:基于评分推荐 190
10.3 基于User-Based协同过滤推荐 193
10.3.1 应用实例:根据人群的推荐 194
10.3.2 User-Based与Item-Based对比 197
10.4 基于潜在因子算法的推荐 198
10.4.1 应用实例:新闻推荐 198
10.4.2 流行度与推荐 200
10.5 推荐算法与效果评价 201
10.6 本章小结 203

产品特色