跳转到主要内容

Python中的核密度估计。

项目描述

DOI Build & test (master) Documentation Status PyPI version Downloads

想要在您的作品中引用KDEpy?请参阅本网站右下角的 引用信息

KDEpy

关于

这个Python 3.8+包实现了多种核密度估计(KDE)。通过相同的API实现了三种算法: NaiveKDETreeKDEFFTKDE。类 FFTKDE 比其他流行实现表现更佳,请参阅 比较页面代码稳定,被实践者和其他软件包广泛使用。

Plot

生成上述图表的代码位于 examples.py

安装

KDEpy可通过PyPI获取,并可以使用pip进行安装

pip install KDEpy

如果您在Ubuntu上遇到问题,请尝试运行sudo apt install libpython3.X-dev,其中3.X是您的Python版本。

示例代码和文档

以下是一个示例,展示了无权重和带权重的核密度。从下面的代码中,应该可以清楚地了解如何设置带宽(核的方差)和权重。请参阅文档以获取更多示例。

from KDEpy import FFTKDE
import matplotlib.pyplot as plt

customer_ages = [40, 56, 20, 35, 27, 24, 29, 37, 39, 46]

# Distribution of customers
x, y = FFTKDE(kernel="gaussian", bw="silverman").fit(customer_ages).evaluate()
plt.plot(x, y)

# Distribution of customer income (weight each customer by their income)
customer_income = [152, 64, 24, 140, 88, 64, 103, 148, 150, 132]

# The `bw` parameter can be manually set, e.g. `bw=5`
x, y = FFTKDE(bw="silverman").fit(customer_ages, weights=customer_income).evaluate()
plt.plot(x, y)

Plot

该软件包由三种算法组成。以下是一个简要说明

  • NaiveKDE - 一种简单的计算方法。支持d维数据、可变带宽、加权数据和多种核函数。在大数据集上非常慢。
  • TreeKDE - 基于树的计算方法。支持与简单算法相同的特性,但在使用无界核函数时,精度会有轻微损失。适用于非均匀、任意的网格评估。
  • FFTKDE - 一种非常快速的基于卷积的计算方法。支持加权d维数据和多核函数,但不支持可变带宽。必须在等距网格上评估,网格越细,精度越高。数据点不能在网格之外。

问题和贡献

问题

如果您在使用该包时遇到困难,请通过创建一个GitHub上的问题来告诉我,我会尽快回复您。

贡献

无论您的数学和Python背景如何,我们都非常欢迎您为KDEpy做出贡献。要贡献,请fork项目,创建一个分支,并提交Pull Request。请遵循以下指南

  • 尽量减少外部依赖。
  • 使用测试驱动开发,每个方法都有测试和文档。
  • 引用文献并实现最近的方法。
  • 除非是瓶颈计算,否则可读性优于速度。
  • 采用面向对象,但要抵制实现许多方法的诱惑--坚持基本原理。
  • 遵循PEP8。

项目详情


下载文件

下载适合您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源代码发行版

kdepy-1.1.10.tar.gz (26.3 kB 查看散列)

上传时间

构建发行版

KDEpy-1.1.10-cp312-cp312-win_amd64.whl (214.4 kB 查看散列)

上传时间 CPython 3.12 Windows x86-64

KDEpy-1.1.10-cp312-cp312-win32.whl (204.7 kB 查看散列)

上传时间 CPython 3.12 Windows x86

KDEpy-1.1.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (557.9 kB 查看散列)

上传于 CPython 3.12 manylinux: glibc 2.17+ x86-64

KDEpy-1.1.10-cp312-cp312-macosx_11_0_arm64.whl (216.0 kB 查看哈希值)

上传于 CPython 3.12 macOS 11.0+ ARM64

KDEpy-1.1.10-cp312-cp312-macosx_10_9_x86_64.whl (223.5 kB 查看哈希值)

上传于 CPython 3.12 macOS 10.9+ x86-64

KDEpy-1.1.10-cp311-cp311-win_amd64.whl (214.0 kB 查看哈希值)

上传于 CPython 3.11 Windows x86-64

KDEpy-1.1.10-cp311-cp311-win32.whl (204.2 kB 查看哈希值)

上传于 CPython 3.11 Windows x86

KDEpy-1.1.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (571.5 kB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64

KDEpy-1.1.10-cp311-cp311-macosx_11_0_arm64.whl (215.6 kB 查看哈希值)

上传于 CPython 3.11 macOS 11.0+ ARM64

KDEpy-1.1.10-cp311-cp311-macosx_10_9_x86_64.whl (222.8 kB 查看哈希值)

上传于 CPython 3.11 macOS 10.9+ x86-64

KDEpy-1.1.10-cp310-cp310-win_amd64.whl (214.8 kB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

KDEpy-1.1.10-cp310-cp310-win32.whl (204.8 kB 查看哈希值)

上传于 CPython 3.10 Windows x86

KDEpy-1.1.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (553.5 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

KDEpy-1.1.10-cp310-cp310-macosx_11_0_arm64.whl (216.3 kB 查看哈希)

上传于 CPython 3.10 macOS 11.0+ ARM64

KDEpy-1.1.10-cp310-cp310-macosx_10_9_x86_64.whl (223.3 kB 查看哈希)

上传于 CPython 3.10 macOS 10.9+ x86-64

KDEpy-1.1.10-cp39-cp39-win_amd64.whl (215.9 kB 查看哈希)

上传于 CPython 3.9 Windows x86-64

KDEpy-1.1.10-cp39-cp39-win32.whl (205.6 kB 查看哈希)

上传于 CPython 3.9 Windows x86

KDEpy-1.1.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (557.4 kB 查看哈希)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

KDEpy-1.1.10-cp39-cp39-macosx_11_0_arm64.whl (216.9 kB 查看哈希)

上传于 CPython 3.9 macOS 11.0+ ARM64

KDEpy-1.1.10-cp39-cp39-macosx_10_9_x86_64.whl (223.7 kB 查看哈希)

上传于 CPython 3.9 macOS 10.9+ x86-64

KDEpy-1.1.10-cp38-cp38-win_amd64.whl (216.0 kB 查看哈希)

上传于 CPython 3.8 Windows x86-64

KDEpy-1.1.10-cp38-cp38-win32.whl (90.6 kB 查看哈希)

上传于 CPython 3.8 Windows x86

KDEpy-1.1.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (445.0 kB 查看哈希)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

KDEpy-1.1.10-cp38-cp38-macosx_11_0_arm64.whl (215.9 kB 查看哈希)

上传于 CPython 3.8 macOS 11.0+ ARM64

KDEpy-1.1.10-cp38-cp38-macosx_10_9_x86_64.whl (107.4 kB 查看哈希值)

上传于 CPython 3.8 macOS 10.9+ x86-64

由以下支持