使用测试数据作为训练:有意义吗?

数据挖掘 数据挖掘 分类 数据清理
2022-03-02 13:15:16

有一个分类问题(两个类)。我们有训练数据,我们知道类标签,我们有测试数据。

想象一下,您已经创建了具有良好准确度(~95%)的模型进行预测,并且我们知道我们没有过度拟合。

如果我们对测试数据进行预测,则提取我们在类标签中确定的对象(例如,predict_proba高于 90%)并将这些对象添加到训练数据中。

这种策略有意义吗?

2个回答

这个想法很可能会增加模型中的偏差。让我们假设模型在模型中具有非零偏差。在这种情况下,当它假设它的预测是正确的,而没有像主动学习那样得到 Oracle 的确认,模型的偏差就会增加。一般而言,如果模型在其预测中存在一定程度的偏差,并且它使用其预测进行学习,则模型中的偏差只会增加。当模型中的偏差为 0 时,不会出现此问题,但是,在这种情况下,无需进一步学习!

请注意,这是一个非常直观的答案,但我想不出反对直觉的论据:-) 我将不胜感激对此的任何反馈。

你没有说明你想要这样做的原因,也没有说明你使用的是什么算法,这两者都会影响你提出的策略是否“有意义”。我会给你几个理由,为什么这个策略可能是一个坏主意。

首先,数据分为训练数据和测试数据是有原因的:因此您对分类器将如何泛化(即估计它的真实分类准确度)有所了解。一旦你开始用测试数据污染你的训练数据,你应该对分类器的泛化性能失去信心。一方面,我希望在训练数据中添加高置信度测试观察结果会提高训练准确性。另一方面,您的测试数据现在将有更大比例的低置信度观察,这将降低您的测试准确性。那么如何判断分类器的泛化能力呢?

当您将高置信度测试观察添加到您的训练集中时,您正在教分类器一些它已经知道的东西。根据您的分类器,很有可能这样做会使分类器偏离离异常值(最初被错误分类的 5%)更远的地方,并且这样做会降低真实(一般)分类的准确性。事实上,有些算法的设计目的与您提出的相反:相反,它们更重视错误分类(低概率)的观察结果,以提高分类器的准确性。举个例子,看看boosting