交叉验证中水平稀有的因子如何处理?

机器算法验证 r 回归 分类数据 交叉验证 罕见事件
2022-03-24 18:28:58

假设在 R 的回归分析中,我的训练数据集中有一个具有 3 个水平的因子类型自变量。但在测试数据集中,同一因子变量有 5 个水平。因此我无法预测测试数据集的响应值。在这种情况下应该怎么做?

1个回答

作为第一个想法,这意味着至少您的训练集不能代表应用程序数据。测试集是否具有代表性是恕我直言,您应该仔细考虑的问题。在这种情况下,找出这些缺失的类是否是特定训练集太小的问题,或者这是否是问题/任务/应用程序的一般特征也很重要。即,以前从未遇到过的新类是否会一直出现。

原则上,我看到处理这种情况的两种可能性:

  • 假设训练集肯定不具有代表性,并要求更多数据,尤其是缺失类的数据。如果您得出的结论是问题出在特定的训练集上,而不是应用程序的一般特征上,这确实是有道理的。

  • 在任何情况下,知道训练数据错过了类,我会考虑使用一类分类器。即一个分类器,它独立于任何可能的其他类来对待每个类。理想情况下,一类分类器应该为尚未可用于训练的类的测试用例返回“未知类”。对于一类分类器,测试这种对属于真正未知类的案例的“拒绝”确实是有意义的。


编辑 wrt @gung 的评论:我认为训练/测试拆分是固定的,有一些希望是好的理由