Skip to main content

Squidward

After working with gaussian processes (GPs) to build out robust reinforcement learning models in production for most of my early career as a machine learning engineer (MLE), I became frustrated with the packages available for building GPs. They often focus using the latest in optimization tools and are far from the elegant, efficient, and simple design that I believe a GP package should embody.

This is my attempt to create the product that I would want to use. Something simple and flexible that gives knowledgable data scientists the tools they need to do the research or production machine learning work that they need.

I'm open to all feedback, commentary, and suggestions as long as they are constructive and polite.

Authors

James Montgomery - Initial work - jamesmontgomery.us

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Installing squidward

This is a step by step guide to installing squidward for your local environment.

I recommend installing squidward in a virtual environment for organized dependency control. Personally, I prefer conda environments. First, let's create and open our environment.

conda create --name squidward_env python=3.6
source activate squidward_env

Using the MKL backend for numpy can help increase the performance of this code. Anaconda now comes with mkl by default. To make use of mkl simply set up your virtual environment with anaconda like below.

conda create --name squidward_env python=3.6 anaconda
source activate squidward_env

To install the most recent stable version, simply pip install from pypi! Squidward is installed and ready to use.

pip install squidward

If you want the latest (not necessarily stable) version, git clone this repository to your local environment instead. To run unit and style tests you will need to clone this repository as tests are not included with the pypi installed package.

git clone https://github.com/looyclark/squidward.git

Change directory (cd) into the root of the squidward repository. Updates staged for the next stable release will be in the master branch and experimental updates will be in branches ending in the suffix "_dev".

cd ./squidward

Install squidward using pip from the setup file.

pip install .

When you are finished using squidward you can either deactivate you conda environment for later use or remove it completely.

source deactivate
conda env remove -n squidward_env

Examples / Tutorials

I've included basic examples of how to use squidward to get new users started building gaussian process models with this package.

Many of these examples include visualizations of data and GP models. Running these examples locally will require the visualization packages below:

pip install "matplotlib>=2.2.3' "seaborn>=0.9.0"

Examples and Tutorials can be found on the squidward docs site

Testing

Testing is an important part of creating maintainable, production grade code. Below are instructions for running unit and style tests as well as installing the necessary testing packages. Tests have intentionally been separated from the installable pypi package for a variety of reasons.

Install required packages

These packages are required to run unit and style tests for squidward.

pip install "nose>=1.3.7" "coverage==4.0.0" "pylint>=1.8.2"

Running unit tests

To run the unit tests cd to squidward/squidward so that /tests is a subdirectory.

cd ./squidward/tests

Use nosetests to run all unit tests for squidward. If you installed squidward in a virtual environment, please run the tests in that same environment.

source activate squidward_env
nosetests

You can also run the tests with coverage to see what code within the package is called in the tests.

nosetests --with-coverage --cover-package=squidward

Running style tests

I attempt to adhere to the pep8 style guide for the squidward project. To run the style tests cd to the root directory of the repository squidward/ so that /squidward is a subdirectory. Use pylint squidward to run all style tests for squidward.

cd ./squidward
pylint squidward

Some of the naming conventions I've chosen intentionally do not adhere to pep8 in order to better resemble mathematical conventions. For example, I often borrow the matrix naming conventions of Rassmussen such as K and K_ss. You can run pylint --disable=invalid-name if you would like to ignore the resulting pylint warnings.

pylint squidward --disable=invalid-name

Acknowledgments

A big thanks to Keegan Hines and Josh Touyz who introduced me to Gaussian Processes. Additionally, a big thanks to Jason Wittenbach and Mack Sweeney who have helped guide me along my journey implementing Bayesian models from scratch.

Metadata

Release files for squidward 0.0.25

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for squidward 0.0.25
File Size Uploaded Provenance Actions
squidward-0.0.25.tar.gz 14.6 kB Without provenance Details for squidward-0.0.25.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for squidward 0.0.25
File Interpreter ABI Platform Actions
squidward-0.0.25-py3-none-any.whl Python 3 none any Details for squidward-0.0.25-py3-none-any.whl

Total release size: 31.5 kB

Release files / squidward-0.0.25.tar.gz

Download URL squidward-0.0.25.tar.gz
Size 14.6 kB
Tags Source
SHA-256 checksum
How to use checksums
115dd095d10fd6170d618288f58521aafe9dd11debaa54465be92725404e5e32
BLAKE2b-256 checksum
How to use checksums
66ffd232fbe3f30b08e473ffb2fa19693f511d7c7a209bd8fef468a71677cbb8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.0

Release files / squidward-0.0.25-py3-none-any.whl

Download URL squidward-0.0.25-py3-none-any.whl
Size 16.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
091bcd4aa6922eea1cfd54b01ac7e80a9cd0c2ce1cefd2a863c07ae96e6f6100
BLAKE2b-256 checksum
How to use checksums
c87ad25889ab321b6e98e2762f42c1574100f630130af65f75b8e73b7e12fa27
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.0

Security for squidward 0.0.25

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page