我认为机器学习或参数估计的一个基本假设是看不见的数据来自与训练集相同的分布。但是,在某些实际情况下,测试集的分布几乎与训练集不同。
假设一个大规模的多分类问题,它试图将产品描述分类为大约 17,000 个类别。训练集将具有高度倾斜的类先验,因此某些类可能有很多训练示例,但有些可能只有少数。假设我们从客户端获得了一个带有未知类标签的测试集。我们尝试使用在训练集上训练的分类器将测试集中的每个产品分类到 17,000 个类别中的一个。测试集可能有倾斜的类分布,但可能与训练集有很大不同,因为它们可能与不同的业务领域相关。如果两个类分布非常不同,则经过训练的分类器可能无法在测试集中正常工作。对于朴素贝叶斯分类器,这一点似乎尤为明显。
是否有任何原则性的方法来处理概率分类器的训练集和特定给定测试集之间的差异?我听说“transductive SVM”在 SVM 中做了类似的事情。是否有类似的技术可以学习在特定给定测试集上表现最佳的分类器?然后我们可以为不同的给定测试集重新训练分类器,这在这个实际场景中是允许的。