如何比较 2 个数据集的数据分布?
机器算法验证
机器学习
分布
Python
数据集
scipy
2022-03-02 13:59:30
1个回答
您可以使用两个样本Kolmogorov-Smirnov 测试比较两列的分布,它包含在scipy.stats
:https ://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ks_2samp.html
from scipy.stats import ks_2samp
import numpy as np
np.random.seed(123456)
x = np.random.normal(0, 1, 1000)
y = np.random.normal(0, 1, 1000)
z = np.random.normal(1.1, 0.9, 1000)
>>> ks_2samp(x, y)
Ks_2sampResult(statistic=0.022999999999999909, pvalue=0.95189016804849647)
>>> ks_2samp(x, z)
Ks_2sampResult(statistic=0.41800000000000004, pvalue=3.7081494119242173e-77)
在原假设下,两个分布是相同的。如果 KS 统计量很小或 p 值很高(大于显着性水平,例如 5%),那么我们不能拒绝两个样本的分布相同的假设。相反,如果 p 值低,我们可以拒绝原假设。
其它你可能感兴趣的问题