要使用我们的分类模型,我们需要设计特征来变换数据,使其尽可能贴近地符合模型中内置的假设(表 4.3)。例如,为满足假设 4.7(即特征包含与用户行为相关的所有信息),我们需要确保我们的特征集包含所有与预测回复相关的特征。由于一封邮件几乎任何部分都可能有助于做出这样的预测,这意味着我们将不得不在特征中编码邮件的几乎所有方面。这将包括谁发送了邮件、收件人栏和抄送栏上的收件人、邮件的主题以及邮件的正文,还有关于该邮件所属会话的信息。
在设计一个新特征时,我们需要确保:
- 该特征捕捉到数据中某个有信息量的方面;
- 该特征的输出具有适合输入到模型的正确形式;
- 该特征提供了关于标签的新信息,超出了既有特征所提供的信息。
在本节中,我们将展示如何为我们的特征集设计若干新特征,同时确保它们满足上述前两条标准。在下一节中,我们将展示如何通过在有和没有某些特征的情况下评估系统,来检查第三条标准。
具有多个状态的特征
到目前为止,我们用一个 ToLine 特征来表示用户出现在邮件中的位置。这个特征只有两个状态:用户要么在收件人栏中,要么不在。因此这个特征忽略了用户是否在抄送栏中,尽管我们可能预期用户在出现在抄送栏中时比完全不出现时更有可能回复邮件。这个特征还忽略了用户在收件人/抄送栏上的位置。如果用户排在收件人栏的第一位,我们可能预期他比排在一长串收件人末尾时更有可能回复。我们可以用我们的数据集来检验这些直觉,方法是找出在若干情形下所有训练/验证邮件中实际被回复的比例:当用户在收件人栏中排第一、第二或第二之后时,当用户在抄送栏中排第一或其他位置时,以及当用户既不在收件人栏也不在抄送栏时(例如,如果他通过邮件列表收到邮件)。
图 4.8 绘制了这些比例,显示回复概率确实会根据适用于哪种情形而有很大变化。这幅图表明,一个能够区分这些情形的特征确实会捕捉到数据中有信息量的方面(即我们上面的第一条标准)。在评估回复比例(例如图 4.8 中的那些)时,重要的是要考虑该比例是从多少封邮件计算得来的,因为从少量邮件计算出的比例不会很准确。为检查这一点,在图 4.8 中我们在每个条形标签下方的括号中显示了邮件数量,表明每个情形都有足够的邮件来准确计算比例,因此我们可以信赖所计算的值。
……