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
Hashes for kerch-0.3.1.1.post1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd88d1e4517e7f03a139ded78657aadbc6a2e00071445ae74f24ba8a3f04e3a1 |
|
MD5 | 21a35baaf8fb90fd766f55c6326e65d0 |
|
BLAKE2b-256 | 404fd8845384307065066f4914a600f8ceb1413c9cb3e3ca982700afbe36c83f |