【问题标题】:Calculating KDE from weighted data using scipy使用 scipy 从加权数据计算 KDE
【发布时间】:2019-11-21 17:16:45
【问题描述】:

我想使用 SciPy 计算(不仅仅是绘制)加权数据的 KDE。 但是,尽管我在 the official documentation 找到了这些内容,但我似乎无法将所有三个参数都传递给函数。

例如这段代码:

from scipy import stats

values = np.random.lognormal(size=1000)
weights = np.random.choice([1.0,10.0,100.0], size=len(values))

kde_pdf = stats.gaussian_kde(np.log10(values), 'scott', weights)

导致错误TypeError: __init__() takes at most 3 arguments (4 given)

我尝试了关键字和非关键字参数的其他排列,但似乎没有任何效果。如何从加权数据中获取 KDE pdf?

【问题讨论】:

  • 为我工作。你能检查一下你正在使用哪个版本的 scipy(使用pip freeze | grep scipy 或在你的 python 控制台中scipy.__version__)?
  • 在 scipy 1.2.0 中,gaussian_kde 增加了对权重的处理。
  • 谢谢(两位)你们!这就是问题所在!我以为我已经将我的 SciPy 更新到了最新版本,但这不起作用,但 scipy.__version__ 返回 1.1.0 。经过一番痛苦,我设法安装了 1.2.1,现在它可以工作了!

标签: python scipy arguments kernel-density


【解决方案1】:

该代码适用于 scipy 1.2.0 及更高版本。我确保升级到 1.2.1 并没有发现更多问题。

【讨论】:

    猜你喜欢
    • 2014-01-03
    • 2014-12-07
    • 2020-02-29
    • 1970-01-01
    • 2016-02-12
    • 2021-11-27
    • 1970-01-01
    • 2014-11-30
    相关资源
    最近更新 更多