Metadata-Version: 1.1
Name: gplib
Version: 0.5.4
Summary: Python library for Gaussian Process Regression.
Home-page: https://github.com/ibaidev/gplib
Author: Ibai Roman
Author-email: ibaidev@users.noreply.github.com
License: GPLv3
Description-Content-Type: UNKNOWN
Description: .. image:: https://travis-ci.org/ibaidev/gplib.svg?branch=master
          :target: https://travis-ci.org/ibaidev/gplib
          :alt: Build Status
        .. image:: https://readthedocs.org/projects/gplib/badge/?version=latest
          :target: http://gplib.readthedocs.io/?badge=latest
          :alt: Documentation Status
         
        GPlib
        =====
        
        A python library for Gaussian Process Regression.
        
        Setup GPlib
        -----------
        
        - The following packages must be installed before installing GPlib
        
        .. code-block:: bash
        
          # for ptyhon3
          apt-get install python3-tk
          # or for python2
          apt-get install python-tk
        
        - Create and activate virtualenv (for python2) or
          venv (for ptyhon3)
        
        .. code-block:: bash
        
          # for ptyhon3
          python3 -m venv --system-site-packages .env
          # or for python2
          virtualenv --system-site-packages .env
        
          source .env/bin/activate
        
        - Upgrade pip
        
        .. code-block:: bash
        
          # for ptyhon3
          python3 -m pip install --upgrade pip
          # or for python2
          python -m pip install --upgrade pip
        
        - Install GPlib package
        
        .. code-block:: bash
        
          python -m pip install gplib
        
        
        Use GPlib
        ----------------------
        
        - Import GPlib to use it in your python script.
        
        .. code-block:: python
        
          import gplib
        
        - Generate some data and test points.
        
        .. code-block:: python
        
          import numpy as np
          data = {
            'X': np.arange(3, 8, 1)[:, None],
            'Y': np.random.uniform(0, 2, 5)[:, None]
          }
          plot_points = np.arange(0, 10, 0.01)[:, None]
        
        
        - Initialize the GP module with the desired modules.
        
        .. code-block:: python
        
          gp = gplib.GP(
            mean_function=gplib.mea.Constant(data),
            covariance_function=gplib.cov.SquaredExponential(data, is_ard=False),
            likelihood_function=gplib.lik.Gaussian(is_noisy=True),
            inference_method=gplib.inf.ExactGaussian()
          )
        
        
        - Sample the prior and the posterior GPs.
        
        .. code-block:: python
        
          prior_samples = gp.sample(plot_points, n_samples=10)
          posterior_gp = gp.get_posterior(data)
          posterior_samples = posterior_gp.sample(plot_points, n_samples=10)
        
        
        - Finally plot the samples.
        
        .. code-block:: python
        
          import matplotlib.pyplot as plt
        
          plt.style.use('ggplot')
        
          plt.clf()
          plt.plot(
            (plot_points).flatten().tolist(),
            prior_samples, color='#43dce5'
          )
          plt.plot(
            (plot_points).flatten().tolist(),
            posterior_samples, color='#b19df0'
          )
          plt.plot(
            (data['X']).flatten().tolist(),
            (data['Y']).flatten().tolist(), color='#714ce5',
            linestyle='None', marker='o'
          )
          plt.show()
        
        - There are more examples in examples/ directory. Check them out!
        
        Develop GPlib
        -------------
        
        -  Download the repository using git
        
        .. code-block:: bash
        
          git clone https://github.com/ibaidev/gplib.git
          cd gplib
          git config user.email 'MAIL'
          git config user.name 'NAME'
          git config credential.helper 'cache --timeout=300'
          git config push.default simple
        
        -  Update API documentation
        
        .. code-block:: bash
        
          source ./.env/bin/activate
          pip install Sphinx
          cd docs/
          sphinx-apidoc -f -o ./ ../gplib
        
Keywords: Gaussian Process
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
