1、什么是特征交叉?

特征交叉是通过组合两个或更多个特征而形成的合成特征, 通过特征组合的方式增加特征的维度,以求得更好的训练效果。

如下图,无法用一条直线来对两组数据进行分类。

【机器学习】Google Developer-特征交叉

但是如果我们如果增加一个组合特征x1x2,得到分类图如下,下图我们就可以很好对两个类型的数据进行分类了。

【机器学习】Google Developer-特征交叉

2、如何进行有效组合特征?

 2.1 针对数值型的特征一般直接进行相乘。例如

  • [A X B]:  2个特征相乘形成的组合特征
  • [A x B x C x D x E]:  5个特征相乘形成的组合特征
  • [A x A]:  通过单个特征的平方形成的组合特征

2.2 对于one-hot编码的格式特征同样可以组合,例如:

在房价预估中可能涉及到经纬度特征,通过分档编程下面:

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

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

那现在我们想基于经度和纬度创建一个组合特征,那么就会形成2*3=6个特征值,类似于下面:

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
]

然后我们在使用时候,对这6个值进行0ne-hot编码即可。

在这里要注意一点,不一定组合特征对模型训练有帮助,具体哪个组合特征有意义要根据实际训练来确定。

3.暴力做交叉可能产生稀疏问题

 这种暴力做交叉很可能导致特征稀疏的问题,这里可以参考FM、FMM以及阿里妈妈发布的MLR的做法和解决思路。 

  FM(Factorization Machine)主要目标是:解决数据稀疏的情况下,特征怎样组合的问题。
  FMM: 在FM模型中,每一个特征会对应一个隐变量,但在FFM模型中,认为应该将特征分为多个field,每个特征对应每个field      分别有一个隐变量。

  特别说明: 以上第三点引自于CSDN博客专家https://blog.csdn.net/g11d111 

相关文章:

  • 2022-01-10
  • 2021-12-30
  • 2021-06-25
  • 2021-04-28
  • 2021-07-08
  • 2021-05-24
  • 2021-09-16
猜你喜欢
  • 2021-10-24
  • 2022-01-07
  • 2021-10-19
  • 2021-11-08
  • 2021-12-31
  • 2021-09-12
  • 2021-11-08
相关资源
相似解决方案