到目前为止,我们给您的印象是,模型会直接对数据集的行执行操作;但实际上,模型提取数据的方式略有不同。
例如,假设某个数据集提供了五个列,但其中只有两个列(b
和 d
)是模型中的特征。在处理第 3 行中的示例时,模型是否会像下面这样简单地抓取突出显示的两个单元格(3b 和 3d)的内容?
事实上,该模型实际上会提取一个浮点值数组,称为特征向量。您可以将特征向量视为构成一个示例的浮点值。
不过,特征矢量很少使用数据集的原始值。相反,您通常必须将数据集的值处理成模型可以更好地学习的表示形式。因此,更现实的特征向量可能如下所示:
使用数据集中的实际值进行训练,而不是使用经过更改的值,模型的预测结果会更好吗?令人惊讶的是,答案是否定的。
您必须确定将原始数据集值表示为特征向量中可训练值的最佳方法。此过程称为特征工程,是机器学习的重要组成部分。最常见的特征工程技术包括:
本单元将介绍归一化和分箱。下一部分“处理分类数据”将介绍其他形式的预处理,例如将非数值数据(例如字符串)转换为浮点值。
特征向量中的每个值都必须是浮点值。不过,许多特征本质上是字符串或其他非数字值。因此,特征工程的很大一部分是将非数值表示为数值。在后续单元中,您将看到很多这类内容。