Kernel Methods in PyTorch
Project description
Kerch
Kerch is a Python package meant for various kernel methods, and in particular Deep Restricted Kernel Machines. You can natively perform SVMs, LS-SVMs, (K)PCA with various kernels, automatic centering, out-of-sample, etc.
The package is built upon PyTorch and supports GPU acceleration.
Examples
Training and plotting an LS-SVM
This is done by first instantiating a model, setting its dataset, searching for the hyperparameters, fitting with those parameters and plotting. The implementation can be found here.
import kerch # importation is fast as the modules are only loaded when called
mdl = kerch.model.LSSVM(type="rbf", # kernel name
representation="dual") # initiate model
mdl.set_data_prop(data=data, # value
labels=labels, # corresponding labels
proportions=[1, 0, 0]) # initiate data
mdl.hyperopt({"gamma", "sigma"}, # define which parameters to tune
max_evals=500, # define how many trials
k=10) # 10-fold cross-validation
mdl.fit() # fit the optimal parameters found
kerch.plot.plot_model(mdl) # plot the model using the built-in method
Out-of-sample kernels with normalization and centering
The factory class alows for the fast instantiation of various implemented kernels. Centering and normalization are
options to choose from and the out-of-sample will also satisfy these properties, based on statistics relative ti the
sample. You can easily use numpy arrays ore even python builtins such as range()
. An implementation can be found
here
sample = np.sin(np.arange(0, 15) / np.pi) + .1
oos = np.sin(np.arange(15, 30) / np.pi) + .1
k = kerch.kernel.factory(type="polynomial", sample=sample, center=True, normalize=True)
k.K # = k1.k1()
k.k1(y=oos)
k.k1(x=oos)
k.k1(x=oos, y=oos)
Installation
As for now, there are two ways to install the package.
PIP
Using pip, it suffices to run pip install kerch
. Just rerun this command with the suffix --upgrade
to upgrade the package to its newest version.
From source
You can also install the package directly from the GitHub repository.
git clone --recursive https://github.com/hdeplaen/kerch
cd kerch
pip install -e .
Resources
- Documentation
- E-DUALITY: ERC Adv. Grant website.
- ESAT-STADIUS: KU Leuven, Department of Electrical Engineering (ESAT), STADIUS Center for Dynamical Systems, Signal Processing and Data Analytics.
Contributors
The contributors and acknowledgements can be found in the CONRIBUTORS file.
License
Kerch has a LGPL-3.0 license, as found in the LICENSE file.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file kerch-0.3.1.5.tar.gz
.
File metadata
- Download URL: kerch-0.3.1.5.tar.gz
- Upload date:
- Size: 21.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f1de828c536d9918384edc14ad62f2491cf179bbd27daff0de1a99149136f64f |
|
MD5 | b777ad51532dc113018e2bdcbcc064a7 |
|
BLAKE2b-256 | 570d51be35fbdb262c70ef3f607e8d826787aee74e18daa4b315dbe0b3ff1227 |
File details
Details for the file kerch-0.3.1.5-py3-none-any.whl
.
File metadata
- Download URL: kerch-0.3.1.5-py3-none-any.whl
- Upload date:
- Size: 19.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8b3dfd37fb41c0925a644cb3c9d11cd3f904207e0ebe8ecf59f594ea8b8f796 |
|
MD5 | d48994dce980c5b7febbe4cd6fd2ae86 |
|
BLAKE2b-256 | 6bb462e4ed222a2e7117bdb476c01b14f2ccf2a64045e61fe27304747ee50d5d |