Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/392781/scikit-ntk
Neural Tangent Kernel (NTK) module for the scikit-learn library
https://github.com/392781/scikit-ntk
kernel-methods machine-learning neural-tangent-kernel ntk scikit scikit-learn
Last synced: 24 days ago
JSON representation
Neural Tangent Kernel (NTK) module for the scikit-learn library
- Host: GitHub
- URL: https://github.com/392781/scikit-ntk
- Owner: 392781
- License: bsd-3-clause
- Created: 2022-06-19T20:02:54.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-10-07T23:05:29.000Z (29 days ago)
- Last Synced: 2024-10-07T23:09:15.276Z (29 days ago)
- Topics: kernel-methods, machine-learning, neural-tangent-kernel, ntk, scikit, scikit-learn
- Language: Python
- Homepage: https://pypi.org/project/scikit-ntk/
- Size: 53.7 KB
- Stars: 21
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Neural Tangent Kernel for `scikit-learn` Gaussian Processes
![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/392781/scikit-ntk/CI.yml?branch=master&label=Lint%2C%20Build%2C%20Install%2C%20Test&style=flat-square) ![PyPI](https://img.shields.io/pypi/v/scikit-ntk?style=flat-square) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/scikit-ntk?style=flat-square) ![PyPI - Downloads](https://img.shields.io/pypi/dm/scikit-ntk?style=flat-square) [![Bibtex citation](https://img.shields.io/badge/bibtex-citation-lightgrey?style=flat-square)](#citation)
**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" master's thesis (found at [http://hdl.handle.net/20.500.12680/d504rr81v](http://hdl.handle.net/20.500.12680/d504rr81v) and [https://arxiv.org/abs/2208.03761](https://arxiv.org/abs/2208.03761)). 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.8)
* scikit-learn (>=1.0.1)### User installation
In terminal using `pip` run:```bash
pip install scikit-ntk
```### Usage
Usage 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 NTKkernel_ntk = NTK(D=3, bias=0.01, bias_bounds=(1e-6, 1e6))
```
Once declared, usage is the same as other `scikit-learn` kernels.## Building
Python Poetry (>=1.2) is required if you wish to build `scikit-ntk` from source. In order to build follow these steps:1. Clone the repository
```bash
git clone [email protected]:392781/scikit-ntk.git
```
2. Enable a Poetry virtual environment
```bash
poetry shell
```
3. Build and install
```bash
poetry build
poetry install --with dev
```## Citation
If you use scikit-ntk in your scientific work, please use the following citation alongside the scikit-learn citations found at [https://scikit-learn.org/stable/about.html#citing-scikit-learn](https://scikit-learn.org/stable/about.html#citing-scikit-learn):
```
@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 = {\url{http://hdl.handle.net/20.500.12680/d504rr81v}}
}
```