Python-Wrapper for Francesco Parrella's OnlineSVR C++ implementation.
Project description
PyOnlineSVR
Python-Wrapper for Francesco Parrella's OnlineSVR [PAR2007] C++ implementation with scikit-learn-compatible interfaces. You can find more information about the OnlineSVR here and the original source code here.
Installation
Dependencies
PyOnlineSVR requires the following dependencies:
- python (>=3.7)
- numpy (>=1.13.3)
- scipy (>=0.19.1)
- joblib (>=0.11)
- scikit-learn (>=0.23.0)
Binaries
PyOnlineSVR is published to PyPi and can be installed using pip
.
Prerequisites
- python (>=3.7)
- pip (>=19.0 to support manylinux2010)
Steps
You can use pip
to install PyOnlineSVR using:
pip install PyOnlineSVR
From Source (Linux)
If you are installing PyOnlineSVR from source, you will need Python 3.7 or later and a modern C++ compiler. We highly recommend using an Anaconda environment for building this project.
In the following, we explain the steps to build PyOnlineSVR using Anaconda and git.
Prepare environment
Create a new Anaconda environment and install the required dependencies. This includes python, SWIG to generate the C++ wrapper, and the C and C++ compiler toolchains.
conda create -n pyonlinesvr python swig gcc_linux-64 gxx_linux-64
conda activate pyonlinesvr
Install dependencies
conda install -n pyonlinesvr numpy scipy scikit-learn
Get the source code
git clone https://gitlab.hpi.de/akita/pyonlinesvr
cd pyonlinesvr
Install PyOnlineSVR
python setup.py install
Note that if your are using Anaconda, you may experience an error caused by the linker:
build/temp.linux-x86_64-3.7/torch/csrc/stub.o: file not recognized: file format not recognized
collect2: error: ld returned 1 exit status
error: command 'g++' failed with exit status 1
This is caused by the linker ld
from the Conda environment shadowing the system ld
.
You should use a newer version of Python in your environment that fixes this issue.
The recommended Python versions are (3.6.10+,) 3.7.6+ and 3.8.1+.
For further details see the issue.
Usage
>>> import numpy as np
>>> from pyonlinesvr import OnlineSVR
>>> X = np.array([[0, 0], [2, 2]])
>>> y = np.array([0.5, 2.5])
>>> regr = OnlineSVR()
>>> regr.fit(X[:1], y[:1])
OnlineSVR()
>>> regr.predict([[1, 1]])
array([ 0.4])
>>> regr.partial_fit(X[1:], y[1:])
OnlineSVR()
>>> regr.predict([[1, 1]])
array([ 1.5])
License
PyOnlineSVR is free software under the terms of the GNU General Public License, as found in the LICENSE file.
References
[PAR2007]: Parrelly, Francesco (2007). "Online Support Vector Machines for Regression." Master thesis. University of Genoa, Italy. PDF
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 Distributions
Hashes for PyOnlineSVR-0.0.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08c68c4322a7c37ce5d1aba34717c3ca017b5d767d7cffae45ae3fdfc287b623 |
|
MD5 | 60d47d8ecccba6d49b4dbccdc8676fb5 |
|
BLAKE2b-256 | b39264c43bdccf7ce10aa0f7dcb0596f364cb2a6c43caf340792967042659e94 |
Hashes for PyOnlineSVR-0.0.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b55c61dc71b9ae1d8c5878c2d1d5eb9df3d2adc8ee1d85ec339a206571161716 |
|
MD5 | 9aac79e217b37084e8b6dc1207ace429 |
|
BLAKE2b-256 | a603fbc5abd16b2e98be0af322c054854d02bdc33d47734654c08af8a78e906b |
Hashes for PyOnlineSVR-0.0.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 261c72f97b0aa06a6ca9558c46c9b17a8268b4ab5391b6f41a3909c3f7ae4285 |
|
MD5 | 74b82020895b4a9fcc4224e2e95ea17a |
|
BLAKE2b-256 | d31ecbf02114ad26e26d6c09798611dc36c47d07a1ac6f5f53677ea65e74ac5d |