特征组合:组合独热矢量

到目前为止,我们专注于跨两个单独的浮点特征进行特征组合。在实践中,机器学习模型很少需要连续特征。但是,机器学习模型经常会组合独热特征向量。将独热特征向量的特征组合视为逻辑连接。例如,假设我们有两个功能:国家/地区和语言。每次的独热编码会生成具有二元特征(可解释为 country=USA, country=Francelanguage=English, language=Spanish)的向量。然后,如果您对这些独热编码执行特征组合,则会获得可理解为逻辑连线的二元特征,例如:

  country:usa AND language:spanish

再举一个例子,假设您对纬度和经度进行分箱,会生成单独的独热五元素特征向量。例如,给定的纬度和经度可以表示为:

  binned_latitude = [0, 0, 0, 1, 0]
  binned_longitude = [0, 1, 0, 0, 0]

假设您为这两个特征向量创建了特征组合:

  binned_latitude X binned_longitude

此特征组合是一个 25 元素的独热矢量(24 个 0 和 1 个 1)。叉号中的单个 1 表示纬度和经度的特定连接。然后,您的模型可以学习关于该连接的特定关联。

假设我们更粗略地对纬度和经度进行分箱,如下所示:

binned_latitude(lat) = [
  0  < lat <= 10
  10 < lat <= 20
  20 < lat <= 30
]

binned_longitude(lon) = [
  0  < lon <= 15
  15 < lon <= 30
]

针对这些粗略分类创建特征组合后,合成特征将具有以下含义:

binned_latitude_X_longitude(lat, lon) = [
  0  < lat <= 10 AND 0  < lon <= 15
  0  < lat <= 10 AND 15 < lon <= 30
  10 < lat <= 20 AND 0  < lon <= 15
  10 < lat <= 20 AND 15 < lon <= 30
  20 < lat <= 30 AND 0  < lon <= 15
  20 < lat <= 30 AND 15 < lon <= 30
]

现在,假设我们的模型需要根据以下两个特征来预测狗主人对狗狗的满意度:

  • 行为类型(吠声、哭泣、依依等)
  • 时段

如果我们基于这两个特征构建特征组合:

  [behavior type X time of day]

那么最终,我们的预测能力将远远超过任一项特征本身。例如,如果狗狗在下午 5 点主人下班回来时(快乐地)哭泣,很可能可以很好地预测出主人满意度。在凌晨 3:00(所有者睡得很安稳时)痛苦地哭泣(也许很痛苦),很有可能是对所有者满意度的负面预测。

线性学习器可以很好地扩展到海量数据。对大量数据集使用特征组合是一种学习高度复杂模型的高效策略。神经网络提供了另一种策略。