一、什么是组合特征?
组合特征是指在机器学习通过将两个或多个基础特征进行某种形式的结合而创建的新特征。这些新特征是描述数据的新视角,这有助于模型发现和学习数据中更复杂的模式。
例如,在广告点击预测问题中,我们有两个基础离散特征:“用户所在国家”和“广告类型”。单独来看,这两个特征都是有意义的,但如果认为用户所在的国家与其对特定类型广告的点击行为之间可能存在某种相关性,我们就可以创造一个组合特征,比如“美国-科技类广告”,来捕获这种潜在的交互效应。
原始特征数据(国家和广告类型对点击广告的影响)
用户 | 用户所在国家 | 广告类型 | 是否点击 |
---|---|---|---|
A | 中国 | 科技 | 1 |
B | 中国 | 时尚 | 1 |
C | 美国 | 科技 | 1 |
D | 英国 | 美食 | 1 |
E | 英国 | 时尚 | 1 |
组合特征数据(组合特征对点击广告的影响)
用户 | 中国 | 美国 | 英国 | 科技 | 时尚 | 美食 | 中国——科技 | 中国——时尚 | 中国——美食 | 美国——科技 | 美国——时尚 | 美国——美食 | 英国——科技 | 英国——时尚 | 英国——美食 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
A | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
B | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
C | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
D | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
E | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
假设有两个特征向量和他们维度分别是和,那么他们的组合特征的维度是,也就是他们各自维度相乘,这里就会产生一个问题,如果两个特征向量的维度本身就已经很高了,那么他们的乘积岂不是“爆炸”了!?这就是处理高维组合特征通常面临的挑战包括维度灾难。我后面会单独将怎么处理,这里就不展开说了。
二、为什么要组合特征?
在广告点击预测问题中,单独考虑“国家”或“广告类型”这两个特征,模型可能无法理解不同国家的用户对不同广告类型的偏好差异。你比如会出现下面这种情况:
- 在某个国家,科技产品的广告可能特别受欢迎,而在其他国家,可能是时尚或食品广告反响更好
- 某一类广告在全球范围内的表现普遍一般,但在某些国家由于文化背景、消费习惯等因素的影响,反而具有很高的点击率
通过组合“国家”和“广告类型”形成“国家-广告类型”这样的组合特征,模型能够更直接地学习和捕捉这些潜在的交互规律,从而在预测用户点击行为或其他相关目标变量时提供更精准的结果。
(1)捕捉交互效应
在许多情况下,单个特征并不能完全描述现象的本质,特征之间的相互作用或交互效应可能对结果产生显著影响。例如,在房地产价格预测中,“房屋面积”和“卧室数量”的组合特征可能比它们各自独立的影响更能准确反映房价。
(2)增强模型解释性
组合特征可以表达更直观、更有意义的实体,使得模型的决策过程更加透明。例如,“男性-喜欢运动”这一组合特征就清晰地表达了用户的某种特性,有利于后续的业务解读和决策制定。
(3) 提升模型性能
通过构建组合特征,模型可以更好地理解和学习数据中潜在的复杂模式,从而提高预测准确性。在实践中,合理地引入组合特征经常能显著提升模型的表现。