0

我想知道在拆分数据集后是否可以对训练和测试数据使用假设测试。

我的目标是检查两个数据样本组是否平衡、分布良好,因此将为要应用的 ML 模型提供一个很好的环境。

如果是这样,我希望 H0(零假设)被接受,即我希望测试数据是训练数据的“缩影”

或者

我希望 H1(替代假设)被接受,即为了检查我的 ML 环境的“基础”,我应该期望找到两个样本之间的差异?

假设我的数据点有 1000 多个数据点,它们遵循高斯分布并且是独立的,那么 Z 检验会是一个好策略吗?

4

1 回答 1

1

是的,您可以运行假设检验以从本质上“验证”这两者testtrain来自“相同分布”的数据。为此,您可以实现一个假设检验,该检验设置:

H_0: Train and test data come from the same distribution
H_1: Train and test data come do not come from the same distribution

为此,您不必对数据的形状做出假设(例如,它来自高斯分布),只需选择适合您正在处理的数据类型的测试(分类、数字连续,数字离散等)。例如,您可以应用Kolmogorov–Smirnov 检验Kruskal–Wallis 检验(两者都在 中实现scipy.stats,例如scipy.stats.kstest)。我不推荐 Z 检验(实际上是 t 检验),因为它通常用于比较两个样本的均值是否相同,而不是它们必然来自相同的分布。

应该注意的是,尽管您提到test数据train时好像是在单个维度上比较它们,但如果您有多个特征/列,则应分别比较每对列。作为现实生活中的例子,从学校“可能随机”选择的一部分学生可能与其他学生具有相同的身高(或来自“相同的身高分布”),但他们的成绩可能与其他学生完全不同。他们。

最后,请注意,在正式的假设检验语言中,您不能“接受”零假设,而只能“无法拒绝它”(请参阅​​此处的 Crossvalidated)。

于 2020-11-03T17:50:33.157 回答