Metadata-Version: 2.1
Name: scikit-ntk
Version: 1.0.0
Summary: Implementation of the neural tangent kernel for scikit-learn's Gaussian process module.
Home-page: https://github.com/392781/scikit-ntk
License: BSD-3-Clause
Keywords: sckit-learn,sklearn
Author: Ronaldas P Lencevičius
Author-email: rlencevicius@ucsb.edu
Requires-Python: >=3.9.7,<4.0.0
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: numpy (>=1.21.2,<2.0.0)
Requires-Dist: scikit-learn (>=1.0.1,<2.0.0)
Project-URL: Bug Tracker, https://github.com/392781/scikit-ntk/issues
Project-URL: Repository, https://github.com/392781/scikit-ntk
Description-Content-Type: text/markdown

## Neural Tangent Kernel for `scikit-learn` Gaussian Processes

**scikit-ntk** is implementation of the neural tangent kernel (NTK) for the `scikit-learn` machine learning library as part of "An Empirical Analysis of the Laplace and Neural Tangent Kernels" ([https://arxiv.org/abs/2208.03761](https://arxiv.org/abs/2208.03761)) master's thesis.  This library is meant to directly integrate with [`sklearn.gaussian_process`](https://scikit-learn.org/stable/modules/classes.html#module-sklearn.gaussian_process) module.  This implementation of the NTK can be used in combination with other kernels to train and predict with Gaussian process regressors and classifiers. 

## Installation

### Dependencies

scikit-ntk requires:
* Python (>=3.7)
* scikit-learn (>=1.0.1)


### User installation
In terminal using `pip` run:

```bash
pip install scikit-ntk
```

### Usage
Useage is described in [`examples/usage.py`](https://github.com/392781/scikit-ntk/blob/master/example/usage.py); however, to get started simply import the `NeuralTangentKernel` class:

```py
from skntk import NeuralTangentKernel as NTK

kernel_ntk = NTK(D=3, bias=0.01, bias_bounds=(1e-6, 1e6))
```
Once declared, usage is the same as other `scikit-learn` kernels.

## Citation

If you use scikit-ntk in your scientific work, please use the following citation:
```
@mastersthesis{lencevicius2022laplacentk,
  author  = "Ronaldas Paulius Lencevicius",
  title   = "An Empirical Analysis of the Laplace and Neural Tangent Kernels",
  school  = "California State Polytechnic University, Pomona",
  year    = "2022",
  month   = "August",
  note    = "https://arxiv.org/abs/2208.03761"
}
```
along with the one listed on the scikit-learn website: [https://scikit-learn.org/stable/about.html#citing-scikit-learn](https://scikit-learn.org/stable/about.html#citing-scikit-learn)

