Metadata-Version: 2.4
Name: adaptivekde
Version: 1.2.0
Summary: Optimal fixed or locally adaptive kernel density estimation
Home-page: https://github.com/shimazaki/AdaptiveKDE
Author: Lee A.D. Cooper
Author-email: cooperle@gmail.com
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: numpy>=1.24
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

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)
