Metadata-Version: 2.0
Name: kaftools
Version: 0.1.1
Summary: Small extensible package for Kernel Adaptive Filtering (KAF) methods.
Home-page: https://github.com/canas/kaftools
Author: Cristóbal Silva
Author-email: crsilva@ing.uchile.cl
License: MIT
Keywords: kernel adaptive filters kaf
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Requires-Dist: matplotlib
Requires-Dist: numpy
Requires-Dist: scipy

**Warning: this is a side-project in progress so many bugs could arise. Please raise an issue if this happens.**

# Kernel Adaptive Filtering for Python
[![Build status](https://ci.appveyor.com/api/projects/status/otkhkwrimf3e4vg5?svg=true)](https://ci.appveyor.com/project/Canas/kaftools) [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/Canas/kaftools/master/LICENSE)

This package implements several Kernel Adaptive Filtering algorithms for research purposes. It aims to be easily extendable.

# Requirements
- Python 3.4+
- NumPy
- SciPy
- (Optional) Matplotlib

# Features
## Adaptive Kernel Filters
- Kernel Least Mean Squares (KLMS) - `KlmsFilter`
- Exogenous Kernel Least Mean Squares (KLMS-X) - `KlmsxFilter`
- Kernel Recursive Least Squares (KRLS) - `KrlsFilter`

## Sparsification Criteria
- Novelty (KLMS)
- Approximate Linear Dependency (KLRS)

## Additional Features
- Delayed input support (KLMS)
- Adaptive kernel parameter learning (KLMS)

For a more visual comparison, check the [latest features sheet](https://docs.google.com/spreadsheets/d/1kvBNAqDSgNGBTcXqMDN7j_dpp949peH_-F1GYVP29y8/edit?usp=sharing).

# Quickstart
Let's do a simple example using a KLMS Filter over given input and target arrays:
```
from kaftools.filters import KlmsFilter
from kaftools.kernels import GaussianKernel

klms = KlmsFilter(input, target)
klms.fit(learning_rate=0.1, kernel=GaussianKernel(sigma=0.1))
```

And that's it!


