假设在 R 的回归分析中,我的训练数据集中有一个具有 3 个水平的因子类型自变量。但在测试数据集中,同一因子变量有 5 个水平。因此我无法预测测试数据集的响应值。在这种情况下应该怎么做?
交叉验证中水平稀有的因子如何处理?
机器算法验证
r
回归
分类数据
交叉验证
罕见事件
2022-03-24 18:28:58
1个回答
作为第一个想法,这意味着至少您的训练集不能代表应用程序数据。测试集是否具有代表性是恕我直言,您应该仔细考虑的问题。在这种情况下,找出这些缺失的类是否是特定训练集太小的问题,或者这是否是问题/任务/应用程序的一般特征也很重要。即,以前从未遇到过的新类是否会一直出现。
原则上,我看到处理这种情况的两种可能性:
假设训练集肯定不具有代表性,并要求更多数据,尤其是缺失类的数据。如果您得出的结论是问题出在特定的训练集上,而不是应用程序的一般特征上,这确实是有道理的。
在任何情况下,知道训练数据错过了类,我会考虑使用一类分类器。即一个分类器,它独立于任何可能的其他类来对待每个类。理想情况下,一类分类器应该为尚未可用于训练的类的测试用例返回“未知类”。对于一类分类器,测试这种对属于真正未知类的案例的“拒绝”确实是有意义的。
编辑 wrt @gung 的评论:我认为训练/测试拆分是固定的,有一些希望是好的理由。