特征组合是通过对数据集中两个或更多分类特征或分桶特征进行组合(取笛卡尔积)而创建的。与多项式转换一样,特征组合可让线性模型处理非线性问题。特征组合还会编码特征之间的互动。
例如,假设有一个包含以下分类特征的叶子数据集:
edges
,包含值smooth
、toothed
和lobed
arrangement
,包含值opposite
和alternate
假设上述顺序是 one-hot 表示法中特征列的顺序,因此具有 smooth
个边缘和 opposite
个排列方式的叶子表示为 {(1, 0, 0), (1, 0)}
。
这两个地图项的交叉项(即笛卡尔积)为:
{Smooth_Opposite, Smooth_Alternate, Toothed_Opposite, Toothed_Alternate,
Lobed_Opposite, Lobed_Alternate}
其中每个项的值为基准地图项值的乘积,即:
Smooth_Opposite = edges[0] * arrangement[0]
Smooth_Alternate = edges[0] * arrangement[1]
Toothed_Opposite = edges[1] * arrangement[0]
Toothed_Alternate = edges[1] * arrangement[1]
Lobed_Opposite = edges[2] * arrangement[0]
Lobed_Alternate = edges[2] * arrangement[1]
例如,如果叶子具有 lobed
边和 alternate
排列方式,则特征交叉矢量将为 Lobed_Alternate
的值为 1,所有其他项的值为 0:
{0, 0, 0, 0, 0, 1}
由于这些特征在同一树种中不会发生变化,因此此数据集可用于按树种对叶子进行分类。
何时使用特征交叉
领域知识可以提供有用的特征组合建议。如果没有这些领域知识,很难手动确定有效的特征交叉或多项式转换。如果计算成本较高,通常可以使用神经网络在训练期间自动发现并应用有用的特征组合。
请注意,对两个稀疏特征进行交叉会产生比这两个原始特征更稀疏的新特征。例如,如果特征 A 是 100 个元素的稀疏特征,特征 B 是 200 个元素的稀疏特征,则 A 和 B 的特征交叉会产生 2 万个元素的稀疏特征。