《数据科学导论:Python语言实现》由两位资深数据科学家撰写,融合其多年从事数据科学相关的教学和科研工作经验,借助现有的Python语法和结构知识,全面而系统地讲解进行数据科学分析和开发的相关工具、技术和*佳实践,包含清晰的代码和简化的示例。通过阅读本书,你将深入理解Python核心概念,成为高效数据科学实践者。
本书共6章,系统介绍了进行数据科学分析和开发所涉及的关键要素。书中首先介绍Python软件及相关工具包的安装和使用;接着不仅讲解数据加载、运算和改写等基本数据准备过程,还详细介绍特征选择、维数约简等高级数据操作方法;并且建立了由训练、验证、测试等过程组成的数据科学流程,结合具体示例深入浅出地讲解了多种机器学习算法;然后介绍了基于图模型的社会网络创建、分析和处理方法;最后讲解数据分析结果的可视化及相关工具的使用方法。
译者序
前言
第1章 新手上路1
1.1 数据科学与Python简介1
1.2 Python的安装2
1.2.1 Python 2还是Python 33
1.2.2 分步安装3
1.2.3 Python核心工具包一瞥4
1.2.4 工具包的安装7
1.2.5 工具包升级9
1.3 科学计算发行版9
1.3.1 Anaconda10
1.3.2 Enthought Canopy10
1.3.3 PythonXY10
1.3.4 WinPython10
1.4 IPython简介10
1.4.1 IPython Notebook12
1.4.2 本书使用的数据集和代码18
1.5 小结25
第2章 数据改写26
2.1 数据科学过程26
2.2 使用pandas进行数据加载与预处理27
2.2.1 数据快捷加载27
2.2.2 处理问题数据30
2.2.3 处理大数据集32
2.2.4 访问其他数据格式36
2.2.5 数据预处理37
2.2.6 数据选择39
2.3 使用分类数据和文本数据41
2.4 使用NumPy进行数据处理49
2.4.1 NumPy中的N维数组49
2.4.2 NumPy ndarray对象基础50
2.5 创建NumPy数组50
2.5.1 从列表到一维数组50
2.5.2 控制内存大小51
2.5.3 异构列表52
2.5.4 从列表到多维数组53
2.5.5 改变数组大小54
2.5.6 利用NumPy函数生成数组56
2.5.7 直接从文件中获得数组57
2.5.8 从pandas提取数据57
2.6 NumPy快速操作和计算58
2.6.1 矩阵运算60
2.6.2 NumPy数组切片和索引61
2.6.3 NumPy数组堆叠63
2.7 小结65
第3章 数据科学流程66
3.1 EDA简介66
3.2 特征创建70
3.3 维数约简72
3.3.1 协方差矩阵72
3.3.2 主成分分析73
3.3.3 一种用于大数据的PCA变型—Randomized PCA76
3.3.4 潜在因素分析77
3.3.5 线性判别分析77
3.3.6 潜在语义分析78
3.3.7 独立成分分析78
3.3.8 核主成分分析78
3.3.9 受限玻耳兹曼机80
3.4 异常检测和处理81
3.4.1 单变量异常检测82
3.4.2 EllipticEnvelope83
3.4.3 OneClassSVM87
3.5 评分函数90
3.5.1 多标号分类90
3.5.2 二值分类92
3.5.3 回归93
3.6 测试和验证93
3.7 交叉验证97
3.7.1 使用交叉验证迭代器99
3.7.2 采样和自举方法100
3.8 超参数优化102
3.8.1 建立自定义评分函数104
3.8.2 减少网格搜索时间106
3.9 特征选择108
3.9.1 单变量选择108
3.9.2 递归消除110
3.9.3 稳定性选择与基于L1的选择111
3.10 小结112
第4章 机器学习113
4.1 线性和逻辑回归113
4.2 朴素贝叶斯116
4.3 K近邻118
4.4 高级非线性算法119
4.4.1 基于SVM的分类算法120
4.4.2 基于SVM的回归算法122
4.4.3 调整SVM123
4.5 组合策略124
4.5.1 基于随机样本的粘合策略125
4.5.2 基于弱组合的分袋策略125
4.5.3 随机子空间和随机分片126
4.5.4 模型序列—AdaBoost127
4.5.5 梯度树提升128
4.5.6 处理大数据129
4.6 自然语言处理一瞥136
4.6.1 词语分词136
4.6.2 词干提取137
4.6.3 词性标注137
4.6.4 命名实体识别138
4.6.5 停止词139
4.6.6 一个完整的数据科学示例—文本分类140
4.7 无监督学习概述141
4.8 小结146
第5章 社会网络分析147
5.1 图论简介147
5.2 图的算法152
5.3 图的加载、输出和采样157
5.4 小结160
第6章 可视化161
6.1 matplotlib基础介绍161
6.1.1 曲线绘图162
6.1.2 绘制分块图163
6.1.3 散点图164
6.1.4 直方图165
6.1.5 柱状图166
6.1.6 图像可视化167
6.2 pandas的几个图形示例169
6.2.1 箱线图与直方图170
6.2.2 散点图171
6.2.3 平行坐标173
6.3 高级数据学习表示174
6.3.1 学习曲线174
6.3.2 验证曲线176
6.3.3 特征重要性177
6.3.4 GBT部分依赖关系图179
6.4 小结180