自适应带宽核密度估计

问题描述 投票:0回答:1

似乎有大量信息和工具可用于实施标准多变量或单变量核密度估计。然而,我目前使用的离散地理数据特别稀疏,并且往往聚集在人口密度高的地区。

也就是说,我在地图上有许多点(经度和纬度),我想估计给定这些点的概率密度,但我需要以某种方式对人口密度进行标准化。环顾四周,解决此类问题的正确方法似乎是为内核估计实现某种最近邻自适应带宽。然而,stats.gaussian_kde 似乎不支持自适应带宽。有谁知道我如何自己实现这一点,或者是否有任何可用于自适应带宽 KDE 的软件包?

python machine-learning kernel-density
1个回答
10
投票

我在Python中搜索变量/自适应核密度估计包时遇到了这个问题。我意识到OP可能已经很久没有继续前进了,但无论如何,这就是我发现的:

  • AdaptiveKDE用于自适应核密度估计的Python模块

    该包实现了一维自适应核密度估计算法 岛崎秀明开发的信号。这使得能够生成平滑直方图,在多个尺度上保留重要的密度特征,而不是简单的单带宽核密度方法,它可以超过或低于平滑密度估计。

  • awkde具有高斯内核的自适应宽度 KDE

    在本地选择内核带宽以考虑数据密度的变化。密度大的区域得到的内核较小,反之亦然。这可以平滑尾部并在高统计区域中获得高分辨率。

    这使用了很棒的 pybind11 包,这使得创建 C++ 绑定超级方便。只有评估是用一个小的 C++ 代码片段编写的以加快速度,其余的是纯 python 实现。

最后一个没有自适应方法,但包含非常适合多模态分布的算法

  • KDEpyPython 中的核密度估计

    这个 Python 3.5+ 包实现了各种内核密度估计器 (KDE)。三种算法通过相同的 API 实现:NaiveKDE、TreeKDE 和 FFTKDE。 FFTKDE 类优于其他流行的实现,请参阅比较页面

© www.soinside.com 2019 - 2024. All rights reserved.