数值数据:模型如何使用特征向量注入数据

到目前为止,我们给您的印象是,模型会直接对数据集的行执行操作;但实际上,模型提取数据的方式略有不同。

例如,假设某个数据集提供了五个列,但其中只有两个列(bd)是模型中的特征。在处理第 3 行中的示例时,模型是否会像下面这样简单地抓取突出显示的两个单元格(3b 和 3d)的内容?

图 1. 直接从数据集中提取示例的模型。
            第三行的 b 列和 d 列处于突出显示状态。
图 1. 这并不是模型获取示例的确切方式。

事实上,该模型实际上会提取一个浮点值数组,称为特征向量。您可以将特征向量视为构成一个示例的浮点值。

图 2. 特征向量是数据集与模型之间的中介。
图 2. 更接近真实情况,但不切合实际。

不过,特征矢量很少使用数据集的原始值。相反,您通常必须将数据集的值处理成模型可以更好地学习的表示形式。因此,更现实的特征向量可能如下所示:

图 3. 特征向量包含两个浮点值:0.13 和 0.47。更贴近现实的特征向量。
图 3. 更逼真的特征向量。

使用数据集中的实际值进行训练,而不是使用经过更改的值,模型的预测结果会更好吗?令人惊讶的是,答案是否定的。

您必须确定将原始数据集值表示为特征向量中可训练值的最佳方法。此过程称为特征工程,是机器学习的重要组成部分。最常见的特征工程技术包括:

  • 归一化:将数值转换为标准范围。
  • 分桶(也称为分桶):将数值转换为范围分桶。

本单元将介绍归一化和分箱。下一部分“处理分类数据”将介绍其他形式的预处理,例如将非数值数据(例如字符串)转换为浮点值。

特征向量中的每个值都必须是浮点值。不过,许多特征本质上是字符串或其他非数字值。因此,特征工程的很大一部分是将非数值表示为数值。在后续单元中,您将看到很多这类内容。