在进行目标编码时,可能会发生两个类别具有相同的目标均值。
这很糟糕,因为其中的新功能没有区别,我们会丢失一些信息。
此外,这可能对模型有害,在特征中选择这种拆分可能会产生一些不一致。
有没有办法解决这个问题?
在进行目标编码时,可能会发生两个类别具有相同的目标均值。
这很糟糕,因为其中的新功能没有区别,我们会丢失一些信息。
此外,这可能对模型有害,在特征中选择这种拆分可能会产生一些不一致。
有没有办法解决这个问题?
我在这个答案中假设基于树的模型
主要问题是模型将无法在合并的类别之间进行拆分。因此,您隐含地接受两个合并类别与其他变量之间没有交互。(cat1 和 cat2 的分割顺序相同)
如果你想让树在任何地方分裂(因为你怀疑交互),你必须在 cat1 和 cat2 的值之间创建一个空间来分裂树。贝叶斯均值编码可以帮助您。它在计算目标均值时考虑了类别的频率。
公式如下:
在哪里 :
注意:带小您将获得与简单目标编码非常相似的结果,同时稍微移动手段(足以启用拆分)。贝叶斯均值的主要目标是限制过拟合,这在做目标编码时也是一个问题。
目标编码背后的想法是假设类别与其他变量没有交互。因此,您将分类空间(高维)转换为一个简单的连续空间,其中只有值很重要。如果您认为该算法可能会混淆两个类别并且这很糟糕,则意味着目标编码不适合。如果不同的类别应该遵循不同的决策路径,那么这意味着类别变量与其他变量之间存在相互作用。
如果您希望每个类别都有不同的决策路径,为什么不保留类别?因为隐含地,树将计算分裂的平均值(在此视频中解释:https ://www.youtube.com/watch?v=g9c66TUylZ4 )