避免虚拟变量陷阱和神经网络

use*_*820 7 regression neural-network one-hot-encoding

我知道在训练机器学习算法之前,分类数据应该是单热编码的.我还需要对于多元线性回归我需要排除其中一个编码变量以避免所谓的虚拟变量陷阱.

例如:如果我有分类功能"大小":"小","中","大",那么在一个热编码我会有类似的东西:

small  medium  large other-feature
  0      1       0      2999
Run Code Online (Sandbox Code Playgroud)

因此,为了避免虚拟变量陷阱,我需要删除3列中的任何一列,例如,列"小".

我是否应该为训练神经网络做同样的事情?或者这纯粹是为了多元回归?

谢谢.

小智 6

如此处所述,在将所有预测变量都视为线性组合的算法输入上,需要避免虚拟变量陷阱(在编码后但在训练之前删除每个分类特征的一个类别)。这些算法是:

  • 线性/多线性回归
  • 逻辑回归
  • 判别分析
  • 不采用重量衰减的神经网络

如果您从采用权重衰减的神经网络的输入中删除类别,则它将偏向于省略的类别。

即使在对特征进行编码后省略一个类别时,也不会丢失任何信息,但是其他算法将不得不通过所有其他类别的组合间接推断被忽略类别的相关性,从而使它们为相同结果进行更多的计算。