/ML_demos

A collection of Machine Learning techniques

Primary LanguageJupyter NotebookMIT LicenseMIT

ML_demos

A collection of machine learning techniques

Installation

Set up a virtual environment.

To install requirements

pip install -U -r requirements.txt

Some notebooks require mystyle, see https://github.com/jaryaman/mystyle

Directories

Data

Datasets which are used in the demonstrations. A number of datasets are taken from here: https://github.com/probml/pmtk3

Notebooks

A set of Jupyter notebooks and helper modules providing demonstrations of some machine learning techniques. Click on the file to read the notebook.

  • data_science_classics.ipynb : Demonstration of K-means clustering and logisitic regression
  • custom_likelihoods.ipynb : How to use custom likelihoods in pymc3
  • empirical_bayes_Gauss_Gauss.ipynb : Use Empirical Bayes to estimate group parameters where model priors are influenced by the data
  • expectation_maximization_GMM.ipynb: Using the expectation maximization algorithm to fit a Gaussian mixture model to two clusters of data
  • decision_trees.ipynb: Exploring decision trees & random forests for classification on the Iris dataset
  • gaussian_processes.ipynb: Using Gaussian processes for non-parametric regression
  • factor_analysis.ipynb: Giving an illustration of probabilistic principal component analysis, and using a full factor analysis model to perform dimensionality reduction on a car feature dataset.
  • hidden_markov_models.ipynb: Exploring the occasionally dishonest casino with Hidden Markov models.
  • independent_component_analysis.ipynb : Exploration of latent linear models using independent component analysis in comparison to principal component analysis.
  • L1_regularization_linear_models.ipynb : Exploration of how to perform L1 regularization for linear regression, and a frequentist heuristic for choosing the regularization strength
  • robust_linear_regression.ipynb : Linear regression using t-distributed noise, using Bayesian inference and Pymc3
  • kernel_machines.ipynb : Using kernel machines to generate a simple non-linear classifier
  • ABC_SMC : Performing Approximate Bayesian Computation Sequential Monte Carlo on the beta-binomial model

Rendering

If GitHub fails to render the notebook, visit https://nbviewer.jupyter.org/ and paste in the URL you wish to view.