原文
我有一个有数百万行的Dataframe,为了创建一个模型,我使用dataset.sample(int(len(dataset)/5))
从这个数据集中随机抽取了一个样本,它从对象的轴返回一个随机的项目样本。现在我想验证样本是否不会从总体中失去统计意义,即确保样本的每个特征(列)的概率分布对于整个数据集(总体)具有相同的概率分布。我既有数字特征,也有分类特征。如何在Python中检查这些特征是否具有相同的概率分布?
Anirban Saha提问于2020-12-18 16:29
2 个回答
高票数最新
Anirban Saha
修改于2020-12-18 17:52已采纳
得票数 2
对于连续变量,您可以使用Kolmogorov-Smirnov统计量。这将测试两个样本是否来自同一分布。
scipy
中的用法
scipy.stats.ks_2samp(data1, data2, alternative='two-sided', mode='auto')
复制
scipy.stats.ks_2samp — SciPy v1.9.3 Manual
或者,如果您已经知道发行版,您可以使用KS-test,它针对给定的发行版测试您的数据:
scipy.stats.kstest — SciPy v1.9.3 Manual
原文
richarddmorey
回答于2020-12-18 16:57
得票数 1
这不需要测试。如果您从整个数据帧中进行简单的随机采样,则数据集所具有的任何特征的概率分布实际上就是整个数据集。这是一个简单随机样本的性质。
不幸的是,除非对数据集也进行了适当的采样(我假设您在这一点上无法控制),否则无法保证数据集和样本具有相同的分布。在数据采样点确定概率分布。
但如果你乐于假设这一点,那么你不需要额外的检查步骤来确保你的随机样本完成了它的工作-这是可以证明的保证。
原文
页面原文内容由Anirban Saha、Bobby Klann、richarddmorey提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:https://stackoverflow.com/questions/65353833复制