MatlabMachine Learning 4771
Machine Learning 4771 - - Tutorials



**Internal**

* Home

* Handouts

* News

* Staff

* Solutions

* Tutorials

**External**

* ML People








Course related notes

Regression by linear combination of basis functions [ps] [pdf]
The perceptron [ps] [pdf]
Document classification with the multinomial model [ps] [pdf]
Sampling from a Gaussian [ps] [pdf]
Slides on exponential family distributions [ps] [pdf]

Writing in LaTeX

A sample document together with its source and a figure [ps] [pdf] [tex] [figure ps]. (In a UNIX/Linux environment use elatex to compile, xdvi to view and dvips to convert to PostScript.)

"The not so Short Introduction to LaTeX 2e" by Tobias Oetiker [pdf]

"The Comprehensive LaTeX symbol list" by Scott Pakin [ps] [pdf]

Further admonishments on writing readable LaTeX documents can be found here.


Linear Algebra Review


A quick reference for basic operations on vectors and matrices, with the corresponding MATLAB commands indicated [ps] [pdf]


Support Vector Machines Tutorial


Support vector machines are not in either Bishop's textbook or Jordan's textbook. SVMs are a newer research topic that only really emerged in the later 1990's. To find out more about SVMs, read the following popular tutorial by Chris Burges:
A Tutorial on Support Vector Machines for Pattern Recognition [ps]


Bayesian Gaussian Tutorial


If you want details on integrating all Gaussian models in Bayesian inference (which is a little too advanced for our purposes), feel free to read up on your own in the following optional tutorial also by Tom Minka:
Inferring a Gaussian Distribution [ps]


Multinomial Tutorial


If you are having trouble with multinomial distributions (for counts and discrete data), take a look at Tom Minka's tutorial:
Bayesian Inference, Entropy and the Multinomial Distribution


Matlab Tutorial


Matlab is one of the best tools for designing machine learning algorithms and many of the class assignments and class projects will be easiest to implement and explore with it. Alternatively, it is possible to use other mathematical software like Mathematica or MathCad although these will be much more awkward. Furthermore, it is possible to use C/C++ or Java as the implementation platform but you will require matrix libraries.

To install Matlab go to the CS Department website and click
www.cs.columbia.edu ->computing ->Software ->Matlab

If that doesn't work, Matlab is available to the Columbia community through AcIS. You just connect (i.e. using ssh) to an AcIS CUNIX machine like:
ssh -lyourusername cunix.cc.columbia.edu
And then run 'matlab' (which lives in /opt/local/bin/matlab).

See the following for more details (Windows or Unix):
Matlab Software through AcIS

The Columbia University Computer Science department also has Matlab available on various Unix machines (in /usr/local/bin/matlab).

Matlab Tutorials:
Mathworks Matlab documentation
MathWorks Matlab Machine Learning Tutorials
UNH Matlab Tutorial
US Navy Matlab Tutorial
MTU Introduction to Matlab
A Matlab tutorial on least squares to help with regression.


Example code (fits polynomial regression to x,y data):
polyreg.m

Example code for EM for mixtures of Gaussians (needs the following 4 .m files after):
mixmodel.m

Example code (generates gaussian samples from a Gaussian mean and covariance matrix):
genData.m

Example code (plots a 2D Gaussian ellipse contour):
plotGauss.m

Example code (plots several Gaussians using the above function):
plotClust.m

Example code (randomly initializes and plots M Gaussians):
randInit.m

Example code (renders a vector point of gray values as an image, type 'help imageData'):
imageData.m

Broken code (plays rock-paper-scissors with learning, you add the learning):
rockpaper.m

Example code (generates samples from a network):
sampleNet.m

Example code (computes the likelihood of a network):
likeNet.m

Broken code (learns network from samples, you add the learning):
learnNet.m