第1章 新手上路 1
1.1 数据科学与Python简介 1
1.2 Python的安装 2
1.2.1 Python 2还是Python 3 3
1.2.2 分步安装 3
1.2.3 工具包的安装 4
1.2.4 工具包升级 6
1.2.5 科学计算发行版 6
1.2.6 虚拟环境 8
1.2.7 核心工具包一瞥 11
1.3 Jupyter简介 17
1.3.1 快速安装与初次使用 19
1.3.2 Jupyter魔术命令 20
1.3.3 Jupyter Notebook怎样帮助数据科学家 22
1.3.4 Jupyter的替代版本 26
1.4 本书使用的数据集和代码 27
1.5 小结 33
第2章 数据改写 34
2.1 数据科学过程 34
2.2 使用pandas进行数据加载与预处理 36
2.2.1 数据快捷加载 36
2.2.2 处理问题数据 38
2.2.3 处理大数据集 41
2.2.4 访问其他的数据格式 43
2.2.5 数据预处理 44
2.2.6 数据选择 47
2.3 使用分类数据和文本数据 49
2.3.1 特殊的数据类型——文本 51
2.3.2 使用Beautiful Soup抓取网页 56
2.4 使用NumPy进行数据处理 57
2.4.1 NmuPy中的N维数组 57
2.4.2 NmuPy ndarray对象基础 58
2.5 创建NumPy数组 59
2.5.1 从列表到一维数组 60
2.5.2 控制内存大小 60
2.5.3 异构列表 61
2.5.4 从列表到多维数组 62
2.5.5 改变数组大小 63
2.5.6 利用NumPy函数生成数组 64
2.5.7 直接从文件中获得数组 65
2.5.8 从pandas提取数据 65
2.6 NumPy快速操作和计算 66
2.6.1 矩阵运算 68
2.6.2 NumPy数组切片和索引 69
2.6.3 NumPy数组堆叠 71
2.7 小结 72
第3章 数据科学流程 73
3.1 EDA简介 73
3.2 创建新特征 77
3.3 维数约简 78
3.3.1 协方差矩阵 79
3.3.2 主成分分析 80
3.3.3 一种用于大数据的PCA变型——RandomizedPCA 82
3.3.4 潜在因素分析 83
3.3.5 线性判别分析 84
3.3.6 潜在语义分析 85
3.3.7 独立成分分析 85
3.3.8 核主成分分析 85
3.3.9 t-分布邻域嵌入算法 87
3.3.10 受限玻尔兹曼机 87
3.4 异常检测和处理 89
3.4.1 单变量异常检测 89
3.4.2 EllipticEnvelope 90
3.4.3 OneClassSVM 94
3.5 验证指标 96
3.5.1 多标号分类 97
3.5.2 二值分类 99
3.5.3 回归 100
3.6 测试和验证 100
3.7 交叉验证 103
3.7.1 使用交叉验证迭代器 105
3.7.2 采样和自举方法 107
3.8 超参数优化 108
3.8.1 建立自定义评分函数 110
3.8.2 减少网格搜索时间 112
3.9 特征选择 113
3.9.1 基于方差的特征选择 113
3.9.2 单变量选择 114
3.9.3 递归消除 115
3.9.4 稳定性选择与基于L1的选择 116
3.10 将所有操作包装成工作流程 118
3.10.1 特征组合和转换链接 118
3.10.2 构建自定义转换函数 120
3.11 小结 121
第4章 机器学习 122
4.1 准备工具和数据集 122
4.2 线性和logistic回归 124
4.3 朴素贝叶斯 126
4.4 K近邻 127
4.5 非线性算法 129
4.5.1 基于SVM的分类算法 129
4.5.2 基于SVM的回归算法 131
4.5.3 调整SVM(优化) 132
4.6 组合策略 133
4.6.1 基于随机样本的粘合策略 134
4.6.2 基于弱分类器的bagging策略 134
4.6.3 随机子空间和随机分片 135
4.6.4 随机森林和Extra-Trees 135
4.6.5 从组合估计概率 137
4.6.6 模型序列——AdaBoost 138
4.6.7 梯度树提升 139
4.6.8 XGBoost 140
4.7 处理大数据 142
4.7.1 作为范例创建一些大数据集 142
4.7.2 对容量的可扩展性 143
4.7.3 保持速度 144
4.7.4 处理多样性 145
4.7.5 随机梯度下降概述 147
4.8 深度学习 148
4.9 自然语言处理一瞥 153
4.9.1 词语分词 153
4.9.2 词干提取 154
4.9.3 词性标注 154
4.9.4 命名实体识别 155
4.9.5 停止词 156
4.9.6 一个完整的数据科学例子——文本分类 156
4.10 无监督学习概览 158
4.11 小结 165
第5章 社交网络分析 166
5.1 图论简介 166
5.2 图的算法 171
5.3 图的加载、输出和采样 177
5.4 小结 179
第6章 可视化、发现和结果 180
6.1 matplotlib基础介绍 180
6.1.1 曲线绘图 181
6.1.2 绘制分块图 182
6.1.3 数据中的关系散点图 183
6.1.4 直方图 184
6.1.5 柱状图 185
6.1.6 图像可视化 186
6.1.7 pandas的几个图形示例 188
6.1.8 散点图 190
6.1.9 平行坐标 192
6.2 封装matplotlib命令 193
6.2.1 Seaborn简介 194
6.2.2 增强EDA性能 197
6.3 交互式可视化工具Bokeh 201
6.4 高级数据学习表示 203
6.4.1 学习曲线 204
6.4.2 确认曲线 205
6.4.3 随机森林的特征重要性 206
6.4.4 GBT部分依赖关系图形 207
6.4.5 创建MA-AAS预测服务器 208
6.5 小结 212
附录A 增强Python基础 213