暂无商品咨询信息 [发表商品咨询]
本书内容丰富,涉及算法基础、设计技术、分析方法、排序算法、搜索算法、图算法、机器学习算法(含无监督/监督学习算法、神经网络算法、自然语言处理算法以及LLM相关算法)、推荐引擎、密码算法、大规模算法等内容,新增GAN、Transformer 等生成模型与现代序列模型内容,以Python为工具,详解算法实现、性能对比与实战技巧,搭配欺诈检测、天气预测等真实案例,助力程序员快速掌握解决问题的算法思维。
本书是算法学习的宝典,为解决实际编程难题提供了强大工具。书中精心挑选50种在软件开发中极为重要的算法,对每种算法与示例都进行了详尽解释,涵盖数据结构操作、搜索策略、排序方法、图形处理技术等。相比第1版,新版内容更丰富,范围更广泛,更新了部分过时信息,增加了如机器学习中的算法优化技巧、大数据处理方法,以及现代顺序模型及其变体、实现大语言模型(LLM)的算法、方法和架构等新兴领域算法。每一章都遵循相同结构:先介绍算法基本概念与适用场景,接着通过代码展示工作原理,最后进行实际案例分析,助力读者将知识转化为实践技能。此外,本书注重培养算法思维,剖析算法背后的逻辑推理过程,可帮助读者学会设计有效算法,在不断变化的技术环境中保持竞争力,是程序员提升自我的宝藏资源 。
目 录 Contents<br />序<br />前言<br />作者简介<br />审校者简介<br />第一部分 基础算法和核心算法<br />第1章 算法概述2<br />1.1 什么是算法3<br />1.1.1 算法的各个阶段3<br />1.1.2 开发环境4<br />1.2 Python包5<br />1.3 算法设计技巧7<br />1.3.1 数据维度7<br />1.3.2 计算维度9<br />1.4 性能分析9<br />1.4.1 空间复杂度分析9<br />1.4.2 时间复杂度分析11<br />1.4.3 性能评估12<br />1.4.4 大O记号12<br />1.4.5 常数时间复杂度14<br />1.4.6 线性时间复杂度15<br />1.4.7 平方时间复杂度15<br />1.4.8 对数时间复杂度16<br />1.5 选择算法17<br />1.6 验证算法17<br />1.6.1 精确算法、近似算法和随机<br />算法17<br />1.6.2 可解释性18<br />1.7 小结19<br />第2章 算法中的数据结构20<br />2.1 探讨Python中的数据结构20<br />2.1.1 列表21<br />2.1.2 元组25<br />2.1.3 字典和集合26<br />2.1.4 使用序列和数据帧30<br />2.1.5 矩阵33<br />2.2 探索抽象数据类型34<br />2.2.1 向量34<br />2.2.2 栈35<br />2.2.3 队列37<br />2.2.4 树39<br />2.3 小结42<br />第3章 排序算法和搜索算法43<br />3.1 排序算法简介43<br />3.1.1 在Python中交换变量44<br />3.1.2 冒泡排序44<br />3.1.3 插入排序47<br />3.1.4 归并排序49<br />3.1.5 希尔排序52<br />3.1.6 选择排序53<br />3.1.7 选择一种排序算法54<br />3.2 搜索算法简介55<br />3.2.1 线性搜索56<br />3.2.2 二分搜索56<br />3.2.3 插值搜索57<br />3.3 实际应用58<br />3.4 小结60<br />第4章 算法设计61<br />4.1 算法设计基本概念简介61<br />4.1.1 正确性:所设计的算法是否会<br />产生我们期望的结果62<br />4.1.2 性能:所设计算法是获取结果的<br />最佳方法吗63<br />4.1.3 可扩展性:所设计算法在更大的<br />数据集上表现得怎么样67<br />4.2 理解算法策略67<br />4.2.1 理解分治策略68<br />4.2.2 理解动态规划策略70<br />4.2.3 理解贪婪算法71<br />4.3 实际应用—求解TSP72<br />4.3.1 使用蛮力策略73<br />4.3.2 使用贪婪算法76<br />4.3.3 两种策略比较77<br />4.4 PageRank算法77<br />4.4.1 问题定义77<br />4.4.2 实现PageRank算法78<br />4.5 理解线性规划80<br />4.5.1 线性规划问题的形式化描述81<br />4.5.2 实际应用—用线性规划实现<br />产量规划81<br />4.6 小结83<br />第5章 图算法84<br />5.1 理解图:简要介绍85<br />5.1.1 图:现代数据网络的支柱85<br />5.1.2 图的基础:顶点(或节点)86<br />5.2 图论与网络分析87<br />5.3 图的表示87<br />5.4 图的机制和类型87<br />5.5 网络分析理论简介89<br />5.5.1 理解最短路径90<br />5.5.2 理解中心性度量92<br />5.5.3 用Python计算中心性指标94<br />5.5.4 社交网络分析97<br />5.6 理解图的遍历97<br />5.6.1 广度优先搜索97<br />5.6.2 深度优先搜索101<br />5.7 案例研究:使用SNA进行欺诈<br />检测103<br />5.7.1 介绍103<br />5.7.2 在这种情况下,什么是欺诈103<br />5.7.3 进行简单的欺诈分析105<br />5.7.4 瞭望塔欺诈分析法106<br />5.8 小结108<br />第二部分 机器学习算法<br />第6章 无监督机器学习算法110<br />6.1 无监督学习简介110<br />6.1.1 数据挖掘生命周期中的无监督<br />学习111<br />6.1.2 无监督学习的当前研究趋势114<br />6.1.3 实例114<br />6.2 理解聚类算法115<br />6.2.1 量化相似性115<br />6.2.2 k-means 聚类算法118<br />6.3 分层聚类的步骤122<br />6.4 编写分层聚类算法123<br />6.5 理解DBSCAN124<br />6.6 在Python中使用DBSCAN<br />创建簇125<br />6.7 评估聚类效果126<br />6.8 降维127<br />6.9 关联规则挖掘133<br />6.9.1 关联规则的类型133<br />6.9.2 关联分析算法136<br />6.10 小结141<br />第7章 传统的监督学习算法142<br />7.1 理解监督机器学习143<br />7.2 描述监督机器学习143<br />7.2.1 理解使能条件146<br />7.2.2 区分分类器和回归器146<br />7.3 理解分类算法147<br />7.3.1 分类器挑战性问题147<br />7.3.2 混淆矩阵153<br />7.3.3 理解召回率和精确度的权衡155<br />7.4 决策树分类算法162<br />7.4.1 理解决策树的分类算法162<br />7.4.2 决策树分类器的优势和劣势165<br />7.4.3 用例165<br />7.5 理解集成方法166<br />7.5.1 用XGBoost算法实现梯度提升<br />算法166<br />7.5.2 区分随机森林算法和集成提升<br />算法169<br />7.5.3 用随机森林算法求解分类器<br />挑战性问题169<br />7.6 逻辑回归170<br />7.6.1 假设171<br />7.6.2 建立关系171<br />7.6.3 损失函数和代价函数172<br />7.6.4 何时使用逻辑回归172<br />7.6.5 用逻辑回归算法求解分类器<br />挑战性问题173<br />7.7 支持向量机算法173<br />7.7.1 用支持向量机算法求解分类器<br />挑战性问题175<br />7.7.2 理解朴素贝叶斯算法175<br />7.8 贝叶斯定理176<br />7.8.1 计算概率176<br />7.8.2 和(AND)事件的乘法原则177<br />7.8.3 一般乘法原则177<br />7.8.4 或(OR)事件的加法原则177<br />7.8.5 用朴素贝叶斯算法求解分类器<br />挑战性问题178<br />7.9 各种分类算法的胜者178<br />7.9.1 理解回归算法179<br />7.9.2 回归器挑战性问题180<br />7.9.3 描述回归器挑战性问题180<br />7.9.4 了解历史数据集180<br />7.9.5 用数据管道实施特征工程181<br />7.10 线性回归182<br />7.10.1 简单线性回归182<br />7.10.2 评价回归器183<br />7.10.3 多元回归184<br />7.10.4 用线性回归算法求解回归器<br />挑战性问题185<br />7.10.5 何时使用线性回归185<br />7.10.6 线性回归的缺点185<br />7.10.7 回归树算法186<br />7.10.8 用回归树算法求解回归器<br />挑战性问题186<br />7.10.9 梯度提升回归算法186<br />7.10.10 用梯度提升回归算法求解<br />回归器挑战性问题187<br />7.11 各种回归算法的胜者188<br />7.12 实例—如何预测天气188<br />7.13 小结190<br />第8章 神经网络算法191<br />8.1 神经网络的演变192<br />8.1.1 时代背景192<br />8.1.2 人工智能之冬和人工智能之春193<br />8.2 理解神经网络194<br />8.2.1 理解感知器194<br />8.2.2 理解神经网络背后的原理195<br />8.2.3 理解分层的深度学习架构196<br />8.3 训练神经网络199<br />8.4 解析神经网络结构199<br />8.5 定义梯度下降200<br />8.6 激活函数202<br />8.6.1 阈值函数202<br />8.6.2 Sigmoid函数203<br />8.6.3 线性整流函数204<br />8.6.4 双曲正切函数206<br />8.6.5 Softmax函数207<br />8.7 工具和框架207<br />8.8 选择顺序性模型或功能性模型212<br />8.8.1 理解TensorFlow213<br />8.8.2 TensorFlow的基本概念213<br />8.8.3 理解张量数学214<br />8.9 理解神经网络的类型215<br />8.9.1 卷积神经网络215<br />8.9.2 生成对抗网络216<br />8.10 迁移学习217<br />8.11 案例研究:使用深度学习实现<br />欺诈检测218<br />8.12 小结221<br />第9章 自然语言处理算法222<br />9.1 自然语言处理简介222<br />9.2 理解自然语言处理术语223<br />9.3 使用Python清洗数据228<br />9.4 理解术语文档矩阵230<br />9.4.1 词频-逆文档频率231<br />9.4.2 结果摘要与讨论232<br />9.5 词嵌入简介232<br />9.6 利用Word2Vec实现词嵌入233<br />9.6.1 解释相似性得分234<br />9.6.2 Word2Vec的优点和缺点235<br />9.7 案例研究:餐厅评论情感分析236<br />9.7.1 导入所需的库并加载数据集236<br />9.7.2 构建一个干净的语料库:预处理<br />文本数据236<br />9.7.3 将文本数据转换为数值特征237<br />9.7.4 分析结果237<br />9.8 自然语言处理的应用238<br />9.9 小结238<br />第10章 理解序列模型239<br />10.1 理解序列数据240<br />10.2 序列模型的数据表示243<br />10.3 循环神经网络简介244<br />10.3.1 理解循环神经网络的架构244<br />10.3.2 在第一个时间步长<br />训练RNN246<br />10.3.3 时间反向传播250<br />10.3.4 基础RNN的局限性251<br />10.4 门控循环单元253<br />10.4.1 更新门简介254<br />10.4.2 实施更新门255<br />10.4.3 更新隐藏单元255<br />10.5 长短期记忆网络256<br />10.5.1 遗忘门简介257<br />10.5.2 候选细胞状态257<br />10.5.3 更新门258<br />10.5.4 计算记忆状态258<br />10.5.5 输出门259<br />10.5.6 将所有内容整合在一起259<br />10.5.7 编写序列模型260<br />10.6 小结265<br />第11章 高级序列建模算法266<br />11.1 高级序列建模技术的演变267<br />11.2 探索自动编码器267<br />11.2.1 编码一个自动编码器268<br />11.2.2 设置环境269<br />11.3 理解Seq2Seq模型271<br />11.3.1 编码器271<br />11.3.2 思想向量272<br />11.3.3 解码器或生成器272<br />11.3.4 Seq2Seq中的特殊标记272<br />11.3.5 信息瓶颈困境272<br />11.4 理解注意力机制273<br />11.4.1 注意力在神经网络中是什么273<br />11.4.2 注意力机制的三个关键方面274<br />11.4.3 深入探讨注意力机制275<br />11.4.4 注意力机制的挑战问题276<br />11.5 深入探讨自注意力276<br />11.5.1 注意力权重277<br />11.5.2 编码器:双向RNN278<br />11.5.3 思想向量278<br />11.5.4 解码器:常规RNN278<br />11.5.5 训练与推断279<br />11.6 Transformer:自注意力之后的神经<br />网络演变279<br />11.6.1 为什么Transformer出类<br />拔萃280<br />11.6.2 Python代码分解280<br />11.6.3 输出的理解281<br />11.7 大型语言模型282<br />11.7.1 理解LLM中的注意力机制282<br />11.7.2 探索自然语言处理的强大工具:<br />GPT和BERT283<br />11.7.3 利用深度和广度模型创建强大<br />的LLM284<br />11.8 底部的表单284<br />11.9 小结285<br />第三部分 高级主题<br />第12章 推荐引擎288<br />12.1 推荐引擎简介289<br />12.2 推荐引擎的类型289<br />12.2.1 基于内容的推荐引擎289<br />12.2.2 协同过滤推荐引擎291<br />12.2.3 混合推荐引擎292<br />12.3 理解推荐系统的局限性294<br />12.3.1 冷启动问题294<br />12.3.2 元数据需求295<br />12.3.3 数据稀疏性问题295<br />12.3.4 推荐系统中社交影响是一把<br />双刃剑295<br />12.4 实际应用领域296<br />12.4.1 Netflix对数据驱动推荐的<br />掌握296<br />12.4.2 亚马逊推荐系统的演变296<br />12.5 实例—创建推荐引擎297<br />12.5.1 搭建框架297<br />12.5.2 数据加载:导入评论和标题297<br />12.5.3 数据合并:创建一个全面的<br />视图298<br />12.5.4 描述性分析:从评分中获取<br />信息299<br />12.5.5 为推荐系统构建结构:创建<br />矩阵299<br />12.5.6 测试引擎:推荐电影300<br />12.6 小结302<br />第13章 数据处理的算法策略303<br />13.1 数据算法简介304<br />13.1.1 CAP定理在数据算法背景下的<br />重要性304<br />13.1.2 分布式环境中的存储304<br />13.1.3 连接CAP定理和数据压缩304<br />13.2 CAP定理介绍305<br />13.2.1 CA系统306<br />13.2.2 AP系统306<br />13.2.3 CP系统307<br />13.3 解码数据压缩算法307<br />13.4 实例—AWS中的数据管理:<br />聚焦于CAP定理和压缩算法312<br />13.4.1 应用CAP定理312<br />13.4.2 使用压缩算法313<br />13.4.3 量化收益313<br />13.5 小结314<br />第14章 密码算法315<br />14.1 密码算法简介315<br />14.1.1 理解最薄弱环节的重要性316<br />14.1.2 基本术语316<br />14.1.3 理解安全性需求317<br />14.1.4 理解密码的基本设计319<br />14.2 理解加密技术的类型322<br />14.2.1 使用加密散列函数322<br />14.2.2 使用对称加密326<br />14.2.3 使用非对称加密327<br />14.3 实例—部署机器学习模型时的<br />安全问题331<br />14.3.1 MITM攻击332<br />14.3.2 避免伪装333<br />14.3.3 数据加密和模型加密333<br />14.4 小结335<br />第15章 大规模算法336<br />15.1 大规模算法简介336<br />15.2 描述大规模算法的高性能基础<br />设施337<br />15.2.1 弹性337<br />15.2.2 对设计良好的大规模算法进行<br />特征描述338<br />15.3 多资源处理的策略制定340<br />15.4 理解并行计算的理论限制341<br />15.4.1 阿姆达尔定律341<br />15.4.2 推导阿姆达尔定律341<br />15.4.3 CUDA:释放GPU架构在并行<br />计算中的潜力344<br />15.4.4 利用Apache Spark实现集群<br />计算的优势347<br />15.5 Apache Spark如何实现大规模的<br />算法处理349<br />15.5.1 分布式计算349<br />15.5.2 内存处理349<br />15.6 在云计算中使用大规模算法349<br />15.7 小结350<br />第16章 实际问题351<br />16.1 算法解决方案面临的挑战352<br />16.2 Twitter AI机器人Tay的失败353<br />16.3 算法的可解释性353<br />16.4 理解伦理与算法359<br />16.4.1 使用学习算法易出现的问题359<br />16.4.2 理解伦理考量360<br />16.4.3 影响算法解决方案的因素361<br />16.5 减少模型中的偏差362<br />16.6 何时使用算法362<br />16.7 小结364
| 基本信息 | |
|---|---|
| 出版社 | 机械工业出版社 |
| ISBN | 9787111783831 |
| 条码 | 9787111783831 |
| 编者 | [加]伊姆兰·艾哈迈德(Imran Ahmad) 著 |
| 出版年月 | 2025-07-01 00:00:00.0 |
| 开本 | 16开 |
| 装帧 | 平装 |
| 页数 | 364 |
| 字数 | 499 |
| 版次 | 1 |
| 印次 | 1 |
| 纸张 | 一般胶版纸 |
暂无商品评论信息 [发表商品评论]
暂无商品咨询信息 [发表商品咨询]