《数据科学导论: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