1

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

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

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

4

1 回答 1

1

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

于 2020-01-10T08:18:04.120 回答