数据科学与工程技术丛书 数据科学导论 Python语言 原书第3版
作者:(意)阿尔贝托 博斯凯蒂
出版时间: 2020年版
丛编项: 数据科学与工程技术丛书
内容简介
本书首先介绍如何设置基本的数据科学工具箱,然后带你进入数据改写和预处理阶段,这一部分主要是阐明所有与核心数据科学活动相关的数据分析过程,如数据加载、转换、修复以及数据探索和处理等。通过主要的机器学习算法、图形分析技术,以及所有易于表现结果的可视化工具,实现对数据科学的概述。 本书对上一版内容进行了全面拓展和更新,涵盖新版的Jupyter Notebook、NumPy、pandas和Scikit-learn等的新改进。此外,还介绍了深度学习(借助在Theano和Tensorflow平台上运行的Keras库)、漂亮的可视化(使用Seaborn和 ggplot)和Web部署(使用bottle)等新内容。 本书行文过程以数据科学项目为主体,辅以整洁的代码和简化的示例,能帮助你理解与项目相关的潜在原理和实际数据集。
目录
译者序
前言
作者简介
审阅者简介
第1章 新手上路1
1.1 数据科学与Python简介1
1.2 Python的安装2
1.2.1 Python 2还是Python 33
1.2.2 分步安装4
1.2.3 安装必要的工具包4
1.2.4 工具包升级6
1.3 科学计算发行版6
1.3.1 Anaconda7
1.3.2 使用conda安装工具包7
1.3.3 Enthought Canopy8
1.3.4 WinPython8
1.4 虚拟环境8
1.5 核心工具包一瞥11
1.6 Jupyter简介18
1.6.1 快速安装与初次使用21
1.6.2 Jupyter魔术命令22
1.6.3 直接从Jupyter Notebook安装软件包23
1.6.4 查看新的JupyterLab环境24
1.6.5 Jupyter Notebook怎样帮助数据科学家24
1.6.6 Jupyter的替代版本29
1.7 本书使用的数据集和代码30
1.7.1 Scikit-learn小规模数据集30
1.7.2 MLdata.org和其他公共资源库32
1.7.3 LIBSVM Data样本33
1.7.4 直接从CSV或文本文件加载数据33
1.7.5 Scikit-learn样本生成器35
1.8 小结36
第2章 数据改写37
2.1 数据科学过程37
2.2 使用pandas进行数据加载与预处理39
2.2.1 数据快捷加载39
2.2.2 处理问题数据41
2.2.3 处理大数据集43
2.2.4 访问其他的数据格式46
2.2.5 合并数据48
2.2.6 数据预处理51
2.2.7 数据选择55
2.3 使用分类数据和文本数据57
2.3.1 特殊的数据类型—文本59
2.3.2 使用Beautiful Soup抓取网页64
2.4 使用Numpy进行数据处理65
2.4.1 NmuPy中的N维数组65
2.4.2 NmuPy ndarray对象基础66
2.5 创建Numpy数组68
2.5.1 从列表到一维数组68
2.5.2 控制内存大小69
2.5.3 异构列表70
2.5.4 从列表到多维数组70
2.5.5 改变数组大小71
2.5.6 利用NumPy函数生成数组73
2.5.7 直接从文件中获得数组73
2.5.8 从pandas提取数据74
2.6 NumPy快速操作和计算75
2.6.1 矩阵运算77
2.6.2 NumPy数组切片和索引78
2.6.3 NumPy数组堆叠80
2.6.4 使用稀疏数组81
2.7 小结83
第3章 数据科学流程84
3.1 EDA简介84
3.2 创建新特征87
3.3 维数约简89
3.3.1 协方差矩阵89
3.3.2 主成分分析90
3.3.3 一种用于大数据的PCA变型—RandomizedPCA93
3.3.4 潜在因素分析94
3.3.5 线性判别分析94
3.3.6 潜在语义分析95
3.3.7 独立成分分析95
3.3.8 核主成分分析96
3.3.9 T-分布邻域嵌入算法97
3.3.10 受限波尔兹曼机98
3.4 异常检测和处理99
3.4.1 单变量异常检测99
3.4.2 EllipticEnvelope101
3.4.3 OneClassSVM104
3.5 验证指标106
3.5.1 多标号分类107
3.5.2 二值分类109
3.5.3 回归110
3.6 测试和验证110
3.7 交叉验证113
3.7.1 使用交叉验证迭代器115
3.7.2 采样和自举方法116
3.8 超参数优化118
3.8.1 建立自定义评分函数120
3.8.2 减少网格搜索时间121
3.9 特征选择123
3.9.1 基于方差的特征选择123
3.9.2 单变量选择124
3.9.3 递归消除125
3.9.4 稳定性选择与基于L1的选择126
3.10 将所有操作包装成工作流程127
3.10.1 特征组合和转换链接128
3.10.2 构建自定义转换函数130
3.11 小结131
第4章 机器学习132
4.1 准备工具和数据集132
4.2 线性和逻辑回归134
4.3 朴素贝叶斯136
4.4 K近邻137
4.5 非线性算法139
4.5.1 基于SVM的分类算法140
4.5.2 基于SVM的回归算法141
4.5.3 调整SVM(优化)142
4.6 组合策略144
4.6.1 基于随机样本的粘贴策略144
4.6.2 基于弱分类器的Bagging策略144
4.6.3 随机子空间和随机分片145
4.6.4 随机森林和Extra-Trees145
4.6.5 从组合估计概率147
4.6.6 模型序列—AdaBoost148
4.6.7 梯度树提升149
4.6.8 XGBoost150
4.6.9 LightGBM152
4.6.10 CatBoost155
4.7 处理大数据158
4.7.1 作为范例创建一些大数据集158
4.7.2 对容量的可扩展性159
4.7.3 保持速度161
4.7.4 处理多样性162
4.7.5 随机梯度下降概述163
4.8 自然语言处理一瞥164
4.8.1 词语分词164
4.8.2 词干提取165
4.8.3 词性标注166
4.8.4 命名实体识别166
4.8.5 停止词167
4.8.6 一个完整的数据科学例子—文本分类168
4.9 无监督学习概览169
4.9.1 K均值算法169
4.9.2 基于密度的聚类技术—DBSCAN172
4.9.3 隐含狄利克雷分布173
4.10 小结177
第5章 可视化、发现和结果178
5.1 matplotlib基础介绍178
5.1.1 曲线绘图179
5.1.2 绘制分块图180
5.1.3 数据中的关系散点图181
5.1.4 直方图182
5.1.5 柱状图183
5.1.6 图像可视化184
5.1.7 pandas的几个图形示例186
5.1.8 通过平行坐标发现模式191
5.2 封装matplotlib命令191
5.2.1 Seaborn简介192
5.2.2 增强EDA性能196
5.3 高级数据学习表示200
5.3.1 学习曲线201
5.3.2 确认曲线202
5.3.3 随机森林的特征重要性203
5.3.4 GBT部分依赖关系图形205
5.3.5 创建MA-AAS预测服务器205
5.4 小结209
第6章 社交网络分析210
6.1 图论简介210
6.2 图的算法215
6.2.1 节点中心性的类型216
6.2.2 网络划分218
6.3 图的装载、输出和采样221
6.4