A collection of machine learning techniques
Set up a virtual environment.
To install requirements
pip install -U -r requirements.txtSome notebooks require mystyle, see https://github.com/jaryaman/mystyle
Datasets which are used in the demonstrations. A number of datasets are taken from here: https://github.com/probml/pmtk3
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 regressioncustom_likelihoods.ipynb: How to use custom likelihoods inpymc3empirical_bayes_Gauss_Gauss.ipynb: Use Empirical Bayes to estimate group parameters where model priors are influenced by the dataexpectation_maximization_GMM.ipynb: Using the expectation maximization algorithm to fit a Gaussian mixture model to two clusters of datadecision_trees.ipynb: Exploring decision trees & random forests for classification on the Iris datasetgaussian_processes.ipynb: Using Gaussian processes for non-parametric regressionfactor_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 strengthrobust_linear_regression.ipynb: Linear regression using t-distributed noise, using Bayesian inference and Pymc3kernel_machines.ipynb: Using kernel machines to generate a simple non-linear classifierABC_SMC: Performing Approximate Bayesian Computation Sequential Monte Carlo on the beta-binomial model
If GitHub fails to render the notebook, visit https://nbviewer.jupyter.org/ and paste in the URL you wish to view.