如何使用 seaborn 使用的相同 kde

How to use the same kde used by seaborn

我正在尝试使用核密度估计器来获取我的数据分布。使用 seaborn,我可以简单地调用 sns.kdeplot(temp, shade=True),这将绘制 kde 或我的数据分布。但是,对于 seaborn,我无法获得新数据点的分数。但是,如果我使用的是 sklearn 库,我可以简单地调用 kde.score_samples(data)。因此,我怎样才能用 seaborn 达到同样的目的呢?或者,有什么方法可以 return 从 seaborn 获得的 kde?

非常感谢任何帮助!

查看文档后https://github.com/mwaskom/seaborn/blob/a9577e705023873de7c7bbf3e9b6ae0dc1880b51/seaborn/distributions.py#L2641,内核的带宽计算如下:bw = stats.gaussian_kde(a).scotts_factor() * a.std(ddof=1) 因此,我使用来自 sklearn 的 bw 和 kde 为:kde = KernelDensity(kernel='gaussian', bandwidth=bw).fit(temp.reshape(-1, 1))

因此,现在我可以调用:kde.score_samples(x_axis.reshape(-1, 1))