【问题标题】:How to use the same kde used by seaborn如何使用与seaborn相同的kde
【发布时间】:2021-02-10 01:59:01
【问题描述】:

我正在尝试使用内核密度估计器来获取我的数据分布。使用 seaborn,我可以简单地调用 sns.kdeplot(temp, shade=True),它会绘制 kde 或我的数据分布。但是,使用 seaborn,我无法获得新数据点的分数。但是,如果我使用的是 sklearn 库,我可以简单地调用 kde.score_samples(data)。因此,我怎样才能用 seaborn 实现同样的目标?或者,有没有办法可以返回从 seaborn 获得的 kde?​​p>

非常感谢任何帮助!

【问题讨论】:

    标签: python-3.x scikit-learn seaborn kernel-density


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-09-22
      • 2021-09-06
      • 2019-01-17
      • 1970-01-01
      • 1970-01-01
      • 2020-06-02
      • 2020-06-16
      • 1970-01-01
      • 2022-01-27
      相关资源
      最近更新 更多