特征工程可以修改数据特征,更好地捕获问题本质,从而改进结果。这个过程既是一种艺术,也是技巧和诀窍的一种结合。本书是一本特征工程实用指南,主要探讨如何利用特征工程提升机器学习解决方案的性能。本书从特征工程的基本概念和技术开始介绍,建立了一种特殊的跨领域方法,通过充分研究案例详细介绍了图数据、时间戳数据、文本数据和图像数据的处理方法,包括分箱、折外估计、特征选择、数据降维和可变长度数据编码等重要主题。
为改善机器学习模型的表现,你会花多少时间修改输入数据的特征?图灵奖得主Yoshua Bengio曾说:“好的输入特征是机器学习取得成功的基本条件。在产业化机器学习中,特征工程所占的工作量接近90%。”修改数据特征以更好地捕获问题的本质,这是机器学习的重中之重。
没有高深的领域知识能否进行高质量的特征工程?本书直面这一充满争议的话题,在不考虑领域知识的情况下,给出了特征工程的一些通用技巧。此外,本书还展示了丰富的案例,涵盖图数据、时间戳数据、文本数据和图像数据。你将在学习各种技巧和诀窍的过程中,逐渐领会特征工程的艺术。
巴勃罗·迪布(Pablo Duboue)
NLP学者。2005年博士毕业于美国哥伦比亚大学,师从ACL前主席Kathleen McKeown教授,曾是IBM Watson DeepQA团队成员。2016年创办NLP技术公司Textualization。他有丰富的教学经验,是世界多所大学的访问教授。
第 一部分 基础知识
第 1章 简介 2
1.1 特征工程 4
1.2 模型评价 8
1.2.1 度量 8
1.2.2 交叉验证 10
1.2.3 过拟合 11
1.2.4 维数灾难 12
1.3 周期 12
1.3.1 ML周期 13
1.3.2 特征工程周期 15
1.4 分析 17
1.4.1 探索性数据分析 17
1.4.2 误差分析 18
1.5 其他过程 20
1.5.1 领域建模 20
1.5.2 特征构建 22
1.6 讨论 24
1.7 扩展学习 26
第 2章 特征组合:归一化、离散化和异常值 28
2.1 归一化特征 29
2.1.1 标准化和去相关性 31
2.1.2 平滑 33
2.1.3 特征加权 34
2.2 离散化和分箱 35
2.2.1 无监督离散化 36
2.2.2 监督离散化 38
2.3 描述性特征 41
2.3.1 直方图 41
2.3.2 其他描述性特征 43
2.4 处理异常值 44
2.5 高级技术 46
2.6 扩展学习 47
第3章 特征扩展:可计算特征、填充与核技巧 48
3.1 可计算特征 49
3.2 填充 54
3.3 复杂特征分解 57
3.4 核操作特征扩展 59
3.5 扩展学习 62
第4章 特征缩减:特征选择、降维和嵌入 64
4.1 特征选择 65
4.1.1 度量 66
4.1.2 组成特征集:搜索与筛选 73
4.1.3 高级技术 75
4.2 正则化与嵌入式特征选择 77
4.2.1 L2 正则化:岭回归 78
4.2.2 L1 正则化:LASSO 78
4.2.3 其他使用嵌入式特征选择的算法 79
4.3 数据降维 80
4.3.1 特征哈希 81
4.3.2 随机投影 82
4.3.3 奇异值分解 82
4.3.4 隐狄利克雷分配 83
4.3.5 聚类 84
4.3.6 其他数据降维技术 85
4.3.7 嵌入 86
4.4 扩展学习 90
第5章 高级主题:可变长度数据与自动特征工程 91
5.1 可变长度特征向量 91
5.1.1 集合 91
5.1.2 列表 92
5.1.3 树 94
5.1.4 图 96
5.1.5 时间序列 97
5.2 基于实例的特征工程 100
5.3 深度学习与特征工程 102
5.4 自动特征工程 105
5.4.1 特征学习 105
5.4.2 无监督特征工程 108
5.5 扩展学习 109
第二部分 案例研究
第6章 图数据 113
6.0 本章概述 115
6.1 WikiCities数据集 116
6.2 探索性数据分析 117
6.3 第 一个特征集 124
6.4 第二个特征集 130
6.5 终的特征集 131
6.6 扩展学习 133
第7章 时间戳数据 134
7.0 本章概述 135
7.1 WikiCities:历史特征 137
7.2 时间延迟特征 139
7.2.1 填充时间戳数据 139
7.2.2 第 一次特征化:填充二阶延迟数据 140
7.2.3 误差分析 141
7.3 滑动窗口 142
7.4 第三次特征化:EMA 143
7.5 使用历史数据进行扩展 143
7.5.1 第四次特征化:扩展的数据 144
7.6 时间序列 145
7.6.1 WikiCountries数据集 145
7.6.2 探索性数据分析 146
7.6.3 第 一次特征化:无TS特征 149
7.6.5 使用模型预测作为特征 149
7.6.6 讨论 150
7.7 扩展学习 151
第8章 文本数据 153
8.0 本章概述 155
8.1 WikiCities:文本 156
8.2 探索性数据分析 156
8.3 仅数值型记号 159
8.3.1 词类型与记号 160
8.3.2 分词:基础知识 160
8.3.3 第 一次特征化 161
8.4 词袋 162
8.4.1 分词 162
8.4.2 第二次特征化 163
8.5 停用词和形态学特征 165
8.5.1 停用词 165
8.5.2 分词:词干提取 166
8.5.3 第三次特征化 166
8.6 上下文特征 167
8.6.1 二元词 168
8.6.2 第四次特征化 169
8.7 跳跃二元词与特征哈希 169
8.7.1 跳跃二元词 169
8.7.2 第五次特征化 169
8.8 数据降维与嵌入 170
8.8.1 嵌入 170
8.8.2 特征加权:TF-IDF 171
8.8.3 第六次特征化 172
8.9 结束语 172
8.9.1 内容扩展 174
8.9.2 文本中的结构 174
8.10 扩展学习 174
第9章 图像数据 175
9.0 本章概述 176
9.1 WikiCities:卫星图像 177
9.2 探索性数据分析 178
9.3 像素即特征 179
9.3.1 第 一次特征化 179
9.3.2 可计算特征:高斯模糊 180
9.3.3 白化 182
9.3.4 对变动的误差分析 183
9.4 自动数据集扩展 183
9.4.1 仿射变换 184
9.4.2 第二次特征化 184
9.5 描述性特征:直方图 184
9.6 局部特征检测器:角点 185
9.6.1 Harris角点检测 186
9.6.2 第四次特征化 186
9.7 数据降维:HOG 187
9.8 结束语 189
9.9 扩展学习 191
第 10章 其他领域:视频、GIS和偏好 192
10.1 视频 193
10.1.1 数据:屏幕录制 194
10.1.2 关键帧检测 194
10.1.3 目标跟踪:均值漂移 195
10.1.4 扩展学习 197
10.2 地理特征 197
10.3 偏好 199
10.3.1 数据:Linux核心代码提交 200
10.3.2 填充偏好数据 201
10.3.3 扩展学习 202