Skip to main content

Optimal fixed or locally adaptive kernel density estimation

Project description

This package implements adaptive kernel density estimation algorithms for 1-dimensional signals developed by Hideaki Shimazaki. This enables the generation of smoothed histograms that preserve important density features at multiple scales, as opposed to naive single-bandwidth kernel density methods that can either over or under smooth density estimates. These methods are described in Shimazaki's paper:

H. Shimazaki and S. Shinomoto, "Kernel Bandwidth Optimization in Spike Rate Estimation," in Journal of Computational Neuroscience 29(1-2): 171-182, 2010 http://dx.doi.org/10.1007/s10827-009-0180-4.

License: All software in this package is licensed under the Apache License 2.0. See LICENSE.txt for more details.

Authors: Hideaki Shimazaki (shimazaki.hideaki.8x@kyoto-u.jp) shimazaki on Github Lee A.D. Cooper (cooperle@gmail.com) cooperlab on GitHub Subhasis Ray (ray.subhasis@gmail.com)

Three methods are implemented in this package:

  1. sshist - can be used to determine the optimal number of histogram bins for independent identically distributed samples from an underlying one-dimensional distribution. The principal here is to minimize the L2 norm of the difference between the histogram and the underlying distribution.

  2. sskernel - implements kernel density estimation with a single globally-optimized bandwidth.

  3. ssvkernel - implements kernel density estimation with a locally variable bandwidth.

Requirements: Python >= 3.9 NumPy >= 1.24

Tested on Python 3.9 (NumPy 1.26) and Python 3.11 (NumPy 2.4).

Installation: pip install adaptivekde

Or from source: pip install -e .

Running tests: python -m pytest tests/ -v python tests/run_tests.py # standalone summary with golden checks python tests/run_benchmarks.py # benchmark timing (appends to tests/benchmarks.json)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

adaptivekde-1.2.0.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

adaptivekde-1.2.0-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file adaptivekde-1.2.0.tar.gz.

File metadata

  • Download URL: adaptivekde-1.2.0.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.21

File hashes

Hashes for adaptivekde-1.2.0.tar.gz
Algorithm Hash digest
SHA256 8f474cb6c1d60d839f7889180da8aa2f0036cf0b37fc211d578aaee08757e331
MD5 e5ade351c0ed08ac161054cfcfec0338
BLAKE2b-256 1e898f98400e5edc69ab0367992538bcde1e5024d129bc9ce98648abbe624bbe

See more details on using hashes here.

File details

Details for the file adaptivekde-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: adaptivekde-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 13.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.21

File hashes

Hashes for adaptivekde-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 48f10808e9d82d6a4fe690a6254aa5234d2b7cedfb273b5d08f5152ad3da7705
MD5 950eb64fd6853cbb26f91a869ac377ed
BLAKE2b-256 40b4dfb27a3678027fcbd22a41b4d1ad28a38840cfea75075cf189c13b8b475a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page