我想知道在拆分数据集后是否可以对训练和测试数据使用假设测试。
我的目标是检查两个数据样本组是否平衡、分布良好,因此将为要应用的 ML 模型提供一个很好的环境。
如果是这样,我希望 H0(零假设)被接受,即我希望测试数据是训练数据的“缩影”
或者
我希望 H1(替代假设)被接受,即为了检查我的 ML 环境的“基础”,我应该期望找到两个样本之间的差异?
假设我的数据点有 1000 多个数据点,它们遵循高斯分布并且是独立的,那么 Z 检验会是一个好策略吗?
我想知道在拆分数据集后是否可以对训练和测试数据使用假设测试。
我的目标是检查两个数据样本组是否平衡、分布良好,因此将为要应用的 ML 模型提供一个很好的环境。
如果是这样,我希望 H0(零假设)被接受,即我希望测试数据是训练数据的“缩影”
或者
我希望 H1(替代假设)被接受,即为了检查我的 ML 环境的“基础”,我应该期望找到两个样本之间的差异?
假设我的数据点有 1000 多个数据点,它们遵循高斯分布并且是独立的,那么 Z 检验会是一个好策略吗?
是的,您可以运行假设检验以从本质上“验证”这两者test
和train
来自“相同分布”的数据。为此,您可以实现一个假设检验,该检验设置:
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)。