编码缺失数据和看不见的数据

数据挖掘 分类数据 缺失数据 编码
2022-03-08 23:40:22

假设我有一个分类问题,我的所有特征都是分类数据。

我缺少数据(我不想做任何插补)。

另外,我知道我的某些功能会有一些看不见的数据(在我的测试数据中)。

我的问题如下:

我应该将(测试集的)丢失和看不见的数据编码到同一类还是不同的类中?

哪个是最常见的做法,为什么?

1个回答

这至少在一定程度上取决于您的模型类型和编码策略。听起来您将是单热编码,“丢失”和/或“新”可能具有级别/虚拟。鉴于您说您不会估算,我猜您将使用基于树的模型?

如果您对看不见的类别有专门的级别,那么经过训练的模型将不知道如何处理它。结果将因模型构建错误、虚拟特征的零输入以及虚拟特征的随机贡献而异。

将新类别分配给缺失的类别会更好一些,但这取决于您在模型训练中如何处理缺失值(但您说过您不想估算)。至少它给出了一致的结果。这甚至可能是最佳选择,具体取决于您的数据。

在您的阐述中,您提到了银行名称,这暗示了一个替代方案(可能是几个)。
也许这些看不见的银行会与训练集中的银行有一些共性(它们可能很小而且是本地的?);如果是这样,您可以尝试粗化训练集中的类别,以便这些新类别很好地落入这些类别(然后将所有未来看不见的银行编码到该新类别中;记下以在重新训练时重新检查此过程!) .
如果您的训练数据有很多小级别,那么将稀有类别放在一起也是有意义的(以帮助避免过度拟合);在这种情况下,您可以将新级别放入该级别。再次取决于您的数据,这可能会很好(小型和本地也很少见,因此在这种情况下这会意外恢复最后一个想法)。