独热编码中存在一种称为虚拟变量陷阱的情况。例如,当我们对有三个类别的分类列进行编码,假设类别为a、b和c时,使用独热编码会得到三个类别或列,即a、b和c。但是,当我们使用get_dummies
时,我们只会得到两个列,即a和b,这样就避免了虚拟变量陷阱。独热编码是否会受到虚拟变量陷阱的影响,还是它能避免这个问题?我是否正确理解?哪一种方法能避免虚拟变量陷阱?或者是否可以不删除列就同时使用这两种方法?我使用这些数据集来进行多种算法的处理。
寻求帮助,提前感谢。
回答:
OneHotEncoder
无法直接处理字符串值。如果你的名义特征是字符串,那么你需要先将它们映射为整数。
pandas.get_dummies
则恰恰相反。默认情况下,它只将字符串列转换为独热表示,除非指定了列。