Skip to main content

Python-Wrapper for Francesco Parrella's OnlineSVR C++ implementation.

Project description

PyOnlineSVR

pipeline status coverage report Code style: black release info License: GPL v3 python version 3.7|3.8|3.9

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

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for PyOnlineSVR, version 0.0.3
Filename, size File type Python version Upload date Hashes
Filename, size PyOnlineSVR-0.0.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.0 MB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size PyOnlineSVR-0.0.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.0 MB) File type Wheel Python version cp38 Upload date Hashes View
Filename, size PyOnlineSVR-0.0.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (1.0 MB) File type Wheel Python version cp39 Upload date Hashes View
Filename, size PyOnlineSVR-0.0.3.tar.gz (47.7 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page