本书是一本Python程序设计教程,除了系统介绍Python程序开发,还重点介绍了面向人工智能应用的开发。全书共10章,内容包括Python与人工智能;Python程序设计基础;Python程序设计进阶;人工智能应用开发的常用算法与模型;NumPy:生成和处理数据;Pandas:分析数据;Matplotlib:数据可视化;使用TensorFlow开发AI应用;基于Keras的AI应用开发实践;使用PyTorch实现机器学习应用。
本书理论结合实际,具有鲜明的实践特色,能够很好地满足高校人工智能相关专业人才培养的需求和人工智能相关岗位开发者的技能提升需求。
系统讲解基于Python的人工智能应用开发方法、工具、案例
详解Python人工智能核心库:NumPy、Pandas、Matplotlib、TensorFlow、Keras、PyTorch
配备教学课件、程序源代码、习题答案、实验指导书等全套教学资源
前言
当今,最为引人瞩目的技术发展方向恐怕非人工智能莫属了。在国家政策的引领下,各地都将人工智能产业列为优先发展目标,人工智能的发展进入快车道。人工智能技术的应用领域在不断发展和拓宽。随着深度学习的快速发展,使得机器能够不断总结经验,变得更加聪明。在机器视觉领域,人工智能不仅能够基本正确地检测和识别物体,更能不断跟踪目标。由于信息不断增多,通过人工智能做初步的筛选、总结,可以极大简化人们的工作。更进一步,具备了学习能力的机器人,可以不断突破人类的极限,在很多领域可以帮助人类完成工作。人工智能的发展和应用,对掌握相关领域知识和技能的人才培养提出了迫切要求,Python是一个非常适合人工智能应用开发的工具,熟练掌握显得尤为重要,本书就是这样一本基于Python的、面向人工智能领域应用开发的教材。
全书共10章,第1章为人工智能概述和选择Python的理由,第2章介绍了Python语言开发环境的安装与部署以及Python程序设计的基础内容,第3章介绍了Python相关的序列、面向过程式程序设计和面向对象程序设计等内容,第4章介绍了人工智能应用开发的常用算法与模型,第5章至第10章分别介绍了NumPy、Pandas、Matplotlib、TensorFlow、Keras和PyTorch六个第三方库的基础编程和AI应用开发的案例。本书前4章介绍了Python程序设计的基础知识以及人工智能的常用算法与模型;第5章至第7章主要介绍Python用于数据分析的三个库;第8章至第10章主要介绍Python常用的机器学习及深度学习第三方库。通过本书,读者可以较为系统全面地掌握Python面向人工智能应用的开发技术。
本书非常适合开设人工智能相关专业的高等院校作为Python程序设计与开发的教材使用,也适合人工智能相关岗位的从业者参考。本书配备了教学课件、源代码、习题答案等丰富的配套资源,供教学、学习使用,需要的教师可登录机械工业出版社教育服务网www.cmpedu.com免费注册后下载,或联系编辑索取(微信:13146070618,电话:010-88379739)。
在本书编写过程中,张晓华负责撰写第1、2、3、5、6章,井超负责撰写第4、8、9、10章,李辉负责撰写第7章。
由于编者水平有限,书中疏漏之处在所难免,恳请广大读者批评指正。
2009.09-至今 讲授数据库原理及应用、数据库技术及应用、C语言程序设计等课程;
主持高教发展改革研究专项项目“利用科研优势提升本科教学质量的研究”,获2012年校教学成果二等奖;
目录
前言
第1章 Python与人工智能 1
1.1 人工智能概述 1
1.1.1 人工智能的概念 1
1.1.2 人工智能的发展历程 1
1.1.3 人工智能的知识体系及应用
领域 2
1.2 人工智能应用开发利器Python 5
1.2.1 Python是什么 5
1.2.2 Python的特点 5
1.2.3 Python可以做什么 6
1.2.4 Python与人工智能 7
1.3 基于Python的主流AI开发
工具 8
1.3.1 NumPy库 8
1.3.2 Pandas库 8
1.3.3 Matplotlib库 8
1.3.4 TensorFlow库 9
1.3.5 Keras库 11
1.3.6 PyTorch库 12
1.3.7 PyTorch与TensorFlow的对比 13
本章练习 14
第2章 Python程序设计基础 15
2.1 Python的安装 15
2.1.1 Python解释器的安装 15
2.1.2 PyCharm集成开发环境的安装 21
2.1.3 Python包管理工具pip 28
2.1.4 Python相关的文件 32
2.2 Python语法基础 33
2.2.1 注释 33
2.2.2 Python语言的关键字 35
2.2.3 Python的标识符 36
2.2.4 Python的内置常量 36
2.2.5 Python的内置函数 37
2.3 Python引用 40
2.3.1 命名空间 40
2.3.2 模块的导入与使用 41
2.4 Python的基本数据类型 42
2.5 Python的运算符与表达式 46
2.6 Python的代码编写规范 48
本章练习 49
第3章 Python程序设计进阶 51
3.1 Python数据结构、程序流程控制、函数与文件 51
3.1.1 Python数据结构 51
3.1.2 Python程序流程控制 66
3.1.3 异常处理 78
3.1.4 函数 81
3.1.5 文件 98
3.2 Python面向对象程序设计 108
3.2.1 类 109
3.2.2 类方法、实例方法、静态
方法 113
3.2.3 对象 117
3.2.4 封装、继承、多态 119
3.2.5 面向对象案例精析 124
本章练习 129
第4章 人工智能应用开发的常用
算法与模型 131
4.1 监督学习模型 131
4.1.1 决策树 131
4.1.2 贝叶斯分类算法 132
4.1.3 神经网络 132
4.1.4 支持向量机(SVM) 132
4.1.5 集成学习分类模型 132
4.1.6 其他分类学习模型 132
4.2 无监督学习模型 133
4.2.1 K-means聚类 133
4.2.2 基于密度的聚类 133
4.2.3 层次聚类方法 133
4.2.4 谱聚类 133
4.3 半监督学习 134
4.3.1 半监督学习概述 134
4.3.2 Multi-view algorithm(多视角
算法) 134
4.3.3 Graph-Based Algorithms(基于图
的算法) 134
4.4 文本处理模型 134
4.4.1 分词模型 134
4.4.2 TF-IDF模型 135
4.4.3 LDA模型 135
4.5 强化学习 136
4.5.1 强化学习概述 136
4.5.2 基本模型和原理 136
4.5.3 网络模型设计 137
4.6 深度学习 137
4.6.1 概要介绍 138
4.6.2 深度学习的特点 139
4.6.3 深度学习的典型模型 139
4.6.4 深度学习的训练过程 140
4.6.5 深度学习的常见应用 141
4.7 模型评价指标 142
4.7.1 模型评价概述 142
4.7.2 常用的模型评价方法 143
4.8 人工神经网络 144
4.8.1 人工神经网络概述 144
4.8.2 网络模型 145
4.8.3 人工神经网络的应用分析 145
4.8.4 多层神经网络 148
4.8.5 激活函数 148
4.8.6 卷积神经网络 149
4.8.7 循环神经网络 156
4.9 人工智能应用的构建 158
4.9.1 数据处理 158
4.9.2 模型设计 159
4.9.3 模型训练 159
4.9.4 模型评估 160
4.9.5 模型测试 160
4.9.6 模型部署 161
本章练习 162
第5章 NumPy:生成和处理
数据 163
5.1 NumPy的安装 163
5.2 NumPy入门 163
5.2.1 数值计算 163
5.2.2 是否使用NumPy的运行时间
对比 165
5.2.3 数组和矩阵计算 166
5.3 NumPy数组操作相关函数 170
5.4 NumPy数学函数 175
5.4.1 NumPy常用数学函数基础 175
5.4.2 NumPy常用统计函数 179
5.4.3 NumPy常用向量和矩阵
函数 184
5.5 NumPy数据分类案例 188
5.5.1 线性回归的基本概念 188
5.5.2 损失函数的设置 189
5.5.3 Python程序实现 190
本章练习 194
第6章 Pandas:分析数据 195
6.1 Pandas 195
6.1.1 Pandas的由来 195
6.1.2 安装Pandas库 195
6.2 Series 198
6.2.1 创建Series对象 198
6.2.2 Series属性 199
6.2.3 Series常用方法 200
6.2.4 Series对象数据绘图 202
6.3 DataFrame 203
6.3.1 DataFrame概念 203
6.3.2 创建DataFrame对象 204
6.3.3 DataFrame属性 206
6.3.4 DataFrame索引和切片 208
6.3.5 DataFrame数据分析 210
6.3.6 DataFrame对象可视化 211
6.4 基于Bank Marketing数据集的
营销活动分析 213
6.4.1 数据集概述和数据结构 213
6.4.2 数据的基本信息 213
6.4.3 客户数据分析 214
6.4.4 营销活动数据分析 215
6.4.5 完整代码及运行结果 215
本章练习 218
第7章 Matplotlib:数据可视化 219
7.1 Matplotlib基础 219
7.2 Matplotlib常见绘图属性 220
7.2.1 编写Matplotlib程序 220
7.2.2 绘图参数 221
7.2.3 Matplotlib的字体 222
7.2.4 其他绘图设置 223
7.3 Matplotlib基本绘图 224
7.3.1 折线图 224
7.3.2 散点图 226
7.3.3 双轴图 226
7.3.4 条形图 228
7.3.5 直方图 229
7.3.6 饼图 230
7.3.7 箱型图 230
7.3.8 泡泡图 232
7.3.9 等高线图 232
7.3.10 3D曲线图 233
7.3.11 3D散点图 234
7.3.12 3D等高线图 235
7.3.13 3D线框图 236
7.3.14 3D曲面图 237
7.4 Matplotlib绘制交互式动态
图形 238
7.4.1 Matplotlib的事件绑定 239
7.4.2 Matplotlib常用事件 239
7.4.3 使用Matplotlib绘制动态
图形 240
7.5 使用NumPy、Pandas、Matplotlib进行电影数据分析与可视化 247
7.5.1 获取数据 247
7.5.2 电影评分分布图 247
7.5.3 电影时长分布图 248
7.5.4 统计电影分类 249
本章练习 250
第8章 使用TensorFlow开发AI
应用 251
8.1 TensorFlow的基本概念 251
8.2 TensorFlow运行原理 251
8.2.1 张量 253
8.2.2 变量 254
8.2.3 数据流图和会话 255
8.3 TensorFlow深度学习 260
8.3.1 激活函数 260
8.3.2 卷积函数 263
8.3.3 池化操作 266
8.3.4 分类函数 267
8.3.5 优化器 268
8.4 TensorFlow实践案例 270
8.4.1 卷积神经网络的构建 271
8.4.2 基于循环神经网络的长短期
记忆模型 274
8.4.3 基于简单循环神经网络的股票
预测 281
本章练习 282
第9章 基于Keras的AI应用开发
实践 283
9.1 Keras基础 283
9.1.1 安装Keras 283
9.1.2 实现卷积神经网络 284
9.1.3 模型的加载及保存 285
9.2 Keras中的神经网络层 286
9.2.1 序列化模型 287
9.2.2 函数化模型 287
9.2.3 核心层 288
9.2.4 优化器 295
9.2.5 损失函数 296
9.2.6 激活函数 296
9.3 Keras案例 297
9.3.1 基于Keras的电影评论分类
问题 297
9.3.2 基于Keras构建卷积神经
网络 299
9.3.3 基于Keras构建循环神经
网络 301
本章练习 303
第10章 使用PyTorch实现机器
学习应用 304
10.1 PyTorch开发流程 304
10.2 PyTorch开发案例 307
10.2.1 基于PyTorch的逻辑回归 307
10.2.2 基于PyTorch构建卷积神经
网络LeNet-5 309
10.2.3 基于PyTorch实现循环神经
网络预测 312
本章练习 314
参考文献 316