人们可以使用 scikitlearn ( https://scikit-learn.org/stable/modules/ generated/sklearn.neighbors.KernelDensity.html#sklearn.neighbors.KernelDensity) 和 scipy ( https:// /docs.scipy.org/doc/scipy/reference/ generated/ scipy.stats.gaussian_kde.html )
两者都允许从估计分布中进行随机抽样。有没有办法在两个库(或任何其他库)中进行条件采样?在 2 变量 (x,y) 的情况下,这意味着来自 P(x|y)(或 P(y|x))的样本,因此来自概率函数的横截面(并且该横截面必须重新缩放至其曲线下的单位面积)。
x = np.random.random(100)
y =np.random.random(100)
kde = stats.gaussian_kde([x,y])
# sampling from the whole pdf:
kde.resample()
Run Code Online (Sandbox Code Playgroud)
我正在寻找类似的东西
# sampling y, conditional on x
kde.sample_conditional(x=1.5) #does not exist
Run Code Online (Sandbox Code Playgroud)