Skip to content

shimazaki/AdaptiveKDE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)

About

Python module for adaptive kernel density estimation

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages