训练和测试数据拆分后是否需要验证数据集的IID并进行相同分布的统计检验?



我知道大多数机器学习算法都是基于输入数据是IID(独立相同的分布(的假设。因此,我们通常不会进行统计测试来比较测试和训练数据的统计。

在实践中,严格来说,我们不能保证数据拆分的分布相同。 通过不检查两个数据集的分布,就会发生概念偏移(或数据偏移(。 因此,我们的模型无法准确执行。 但是,大多数网站帖子和教科书都没有涵盖这一点。

训练和测试数据拆分后是否需要验证IID并进行统计比较? 例如,用于比较训练数据集和测试数据集平均值的双样本检验

假设您的初始数据(拆分前(是 IID 并且它很大,您可以证明由随机拆分引起的拆分也是 IID,这可以通过以下事实直观地看到:如果您在拆分后获得的测试数据是从初始数据中提取的 IID 样本, 因此,它在这些数据的任何顺序上都具有相同的动量,因此它们具有相同的分布,它是独立的这一事实与采样过程有关,它本身独立地绘制样本。现在对于您有一个小数据集的情况,这不再是真的,在这种情况下,很多人都很好地做了一些其他train_test拆分,也许最著名和最简单的是使用分层拆分,即您很好地保留了类的比例拆分数据,如果您使用的是sklearn.model_selection.train_test_split,您可以通过设置参数stratify=True来做到这一点。当然,这种技术并不能确定训练和测试之间输入的分布是否相似,但至少它确保了标签的分布是相似的。

最新更新