Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pmuens/lab

Research Environment to play around with Algorithms and Data (Structures)
https://github.com/pmuens/lab

algorithms artificial-intelligence artificial-neural-networks data-science deep-learning jupyter jupyter-notebook machine-learning machine-learning-algorithms

Last synced: 16 days ago
JSON representation

Research Environment to play around with Algorithms and Data (Structures)

Awesome Lists containing this project

README

        

# Lab

Personal lab to play around with algorithms and data.

**NOTE:** In order to make the implementations as understandable as possible I sometimes write more expressive code which could result in poor performance or disapproval of purists. I strongly believe that readability for such educational endeavors is more important than high-performance or idiomatic code.

## Implementations

### X from scratch

From scratch implementations of various algorithms and models in pure Python.

| Notebook | nbviewer | Google Colab | Blog post |
| --------------------------------------------- | :----------------------------------: | :-------------------------------: | :------------------------------: |
| [Gradient Descent][gradient-descent-nb] | [Link][gradient-descent-nbviewer] | [Link][gradient-descent-colab] | [Link][gradient-descent-post] |
| [k-NN][k-nn-nb] | [Link][k-nn-nbviewer] | [Link][k-nn-colab] | [Link][k-nn-post] |
| [Naive Bayes][naive-bayes-nb] | [Link][naive-bayes-nbviewer] | [Link][naive-bayes-colab] | [Link][naive-bayes-post] |
| [Linear Regression][linear-regression-nb] | [Link][linear-regression-nbviewer] | [Link][linear-regression-colab] | [Link][linear-regression-post] |
| [Multiple Regression][multiple-regression-nb] | [Link][multiple-regression-nbviewer] | [Link][multiple-regression-colab] | [Link][multiple-regression-post] |
| [Logistic Regression][logistic-regression-nb] | [Link][logistic-regression-nbviewer] | [Link][logistic-regression-colab] | [Link][logistic-regression-post] |
| [Decision Trees][decision-trees-nb] | [Link][decision-trees-nbviewer] | [Link][decision-trees-colab] | [Link][decision-trees-post] |
| [Neural Networks][neural-networks-nb] | [Link][neural-networks-nbviewer] | [Link][neural-networks-colab] | Coming soon |
| [k-means Clustering][k-means-clustering-nb] | [Link][k-means-clustering-nbviewer] | [Link][k-means-clustering-colab] | Coming soon |

[gradient-descent-nb]: ./x-from-scratch/gradient-descent-from-scratch.ipynb
[gradient-descent-nbviewer]: https://nbviewer.jupyter.org/github/pmuens/lab/blob/master/x-from-scratch/gradient-descent-from-scratch.ipynb
[gradient-descent-colab]: https://colab.research.google.com/github/pmuens/lab/blob/master/x-from-scratch/gradient-descent-from-scratch.ipynb
[gradient-descent-post]: https://philippmuens.com/gradient-descent-from-scratch/
[k-nn-nb]: ./x-from-scratch/k-nn-from-scratch.ipynb
[k-nn-nbviewer]: https://nbviewer.jupyter.org/github/pmuens/lab/blob/master/x-from-scratch/k-nn-from-scratch.ipynb
[k-nn-colab]: https://colab.research.google.com/github/pmuens/lab/blob/master/x-from-scratch/k-nn-from-scratch.ipynb
[k-nn-post]: https://philippmuens.com/k-nearest-neighbors-from-scratch/
[naive-bayes-nb]: ./x-from-scratch/naive-bayes-from-scratch.ipynb
[naive-bayes-nbviewer]: https://nbviewer.jupyter.org/github/pmuens/lab/blob/master/x-from-scratch/naive-bayes-from-scratch.ipynb
[naive-bayes-colab]: https://colab.research.google.com/github/pmuens/lab/blob/master/x-from-scratch/naive-bayes-from-scratch.ipynb
[naive-bayes-post]: https://philippmuens.com/naive-bayes-from-scratch/
[linear-regression-nb]: ./x-from-scratch/linear-regression-from-scratch.ipynb
[linear-regression-nbviewer]: https://nbviewer.jupyter.org/github/pmuens/lab/blob/master/x-from-scratch/linear-regression-from-scratch.ipynb
[linear-regression-colab]: https://colab.research.google.com/github/pmuens/lab/blob/master/x-from-scratch/linear-regression-from-scratch.ipynb
[linear-regression-post]: https://philippmuens.com/linear-and-multiple-regression-from-scratch/
[multiple-regression-nb]: ./x-from-scratch/multiple-regression-from-scratch.ipynb
[multiple-regression-nbviewer]: https://nbviewer.jupyter.org/github/pmuens/lab/blob/master/x-from-scratch/multiple-regression-from-scratch.ipynb
[multiple-regression-colab]: https://colab.research.google.com/github/pmuens/lab/blob/master/x-from-scratch/multiple-regression-from-scratch.ipynb
[multiple-regression-post]: https://philippmuens.com/linear-and-multiple-regression-from-scratch/
[logistic-regression-nb]: ./x-from-scratch/logistic-regression-from-scratch.ipynb
[logistic-regression-nbviewer]: https://nbviewer.jupyter.org/github/pmuens/lab/blob/master/x-from-scratch/logistic-regression-from-scratch.ipynb
[logistic-regression-colab]: https://colab.research.google.com/github/pmuens/lab/blob/master/x-from-scratch/logistic-regression-from-scratch.ipynb
[logistic-regression-post]: https://philippmuens.com/logistic-regression-from-scratch/
[decision-trees-nb]: ./x-from-scratch/decision-trees-from-scratch.ipynb
[decision-trees-nbviewer]: https://nbviewer.jupyter.org/github/pmuens/lab/blob/master/x-from-scratch/decision-trees-from-scratch.ipynb
[decision-trees-colab]: https://colab.research.google.com/github/pmuens/lab/blob/master/x-from-scratch/decision-trees-from-scratch.ipynb
[decision-trees-post]: https://philippmuens.com/decision-trees-from-scratch/
[neural-networks-nb]: ./x-from-scratch/neural-networks-from-scratch.ipynb
[neural-networks-nbviewer]: https://nbviewer.jupyter.org/github/pmuens/lab/blob/master/x-from-scratch/neural-networks-from-scratch.ipynb
[neural-networks-colab]: https://colab.research.google.com/github/pmuens/lab/blob/master/x-from-scratch/neural-networks-from-scratch.ipynb
[k-means-clustering-nb]: ./x-from-scratch/k-means-clustering-from-scratch.ipynb
[k-means-clustering-nbviewer]: https://nbviewer.jupyter.org/github/pmuens/lab/blob/master/x-from-scratch/k-means-clustering-from-scratch.ipynb
[k-means-clustering-colab]: https://colab.research.google.com/github/pmuens/lab/blob/master/x-from-scratch/k-means-clustering-from-scratch.ipynb

## Running it

**NOTE:** You can pass an optional port number as the first CLI argument (i.e. `./jupyter-lab 3000`).

### Jupyter Lab

```sh
./jupyter-lab.sh
```

### Jupyter Notebook

```sh
./jupyter-notebook.sh
```