CPS 271
Machine Learning

Required Text

Pattern Recognition and machine Learning by Christopher M. Bishop. Be sure to download the errata!

Other texts and References

  • The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Trevor Hastie, Robert Tibshirani, and Jerome Friedman. The full text is available as a pdf from the official book web page.
  • Neural Networks for Pattern Recognition, Christopher M. Bishop. (It's not as much about neural networks as you might expect given the title. This is a good overview of many machine learning topics, but it is largely superseded by the required text.)
  • An Introduction to Computational Learning Theory, Michael J. Kearns and Umesh V. Vazirani. (A good introduction to computational learning theory - not really the focus of the class though.)
  • Reinforcment Learning, An Introduction, Richard S. Sutton and Andrew G. Barto. (An accessible introduction to reinforcement learning that is also available online.)
  • Machine Learning, Tom M. Michell. (An introduction to classic concepts in machine learning - a little dated now.)
  • Convex Optimization, Stephen Boyd and Lieven Vandenberghe. (Very thorough treatment by real experts and the full text is available online.)
  • Matrix Analysis and Applied Linear Algebra: The entire text is available for free online if you don't mind the very aggressive watermarking.
  • The Matrix Cookbook
  • Tom Minka's Matrix Tutorial

    Tutorials

  • An Introduction to Computational Complexity, by Kimon Spiliopoulos. (Parts A-D give a concise overview of some key concepts - a good read for non computer scientists who want to get up to speed quickly.)
  • An Introduction to Langrange Multipliers (The classic "milkmaid problem"!)
  • Rabiner's HMM Tutorial

    LaTeX

  • LaTeX Tutorial from Cornell
  • A Not So Short Introduction to LaTeX
  • A LaTeX course designed by one of our TAs when he was an undergrad
  • TexShop for Macs
  • LaTeX info for Ubuntu
  • MikTeX for Windows


  • Useful Code and Programs

  • matlab is the official programming language for CPS 271. Duke students should be able to access matlab in some form. Please contact us if you have difficulty. matlab has extensive documentation and guides accessible from within the matlab environment. Extensive online help and documentation are also available.
  • octave is an open source alternative to matlab. It is included with many linux distributions and is now included with the latest version of cygwin, a linux-like environment for Windows.
  • Weka is a great environment for learning and experimenting with a variety of machine learning algorithms.
  • An extensive list of SVM related software is available.
  • ghostview is a free postscript interpreter that will let you viewer older papers stored in postscript format. (Newer papers tend to be stored in pdf.)
  • Virtual Box is a free virtual machine that will allow you to run a second OS inside of a window on your current Windows, Linux, Solaris, or OS X machine. This is useful if you want to try software tools that are not available for your native OS.
  • gnuplot is a useful program for plotting arbitrary functions.
  • CutePDF Writer is a free tool for generating PDFs from within Windows. It appears as a printer and has no ads or other distractions, so it's quite painless to use. (From Mac OS or linux, you can use the tools included with the OS distribution.)
  • SVM applet from AT&T research.
  • Perceptron Demo
  • k-means demo

    Other Resources

  • The UC Irvine Machine Learning Repository contains many benchmark data sets.
  • The Reinforcement Learning Repository at U. Mass. has code and implementations of benchmark domains for reinforcement learning.
  • The RL Glue project aims to provide a standard interface for reinforcement learning agents and environments.
  • videolectures.net has videos and slides from many academic subjects, but is heavily weighted towards CS and has talks from several machine learning conferences.
  • Yann LeCun's handwritten digit database is a classic benchmark for machine learning algorithms.
  • kaggle data prediction competitions