CS 4900/5900: Machine Learning

Fall 2017

This course will give an overview of the main concepts, techniques, and algorithms underlying the theory and practice of machine learning. The course will cover the fundamental topics of classification, regression and clustering, and a number of corresponding learning models such as perceptrons, logistic regression, linear regression, Naive Bayes, nearest neighbors, and Support Vector Machines. The description of the formal properties of the algorithms will be supplemented with motivating applications in a wide range of areas including natural language processing, computer vision, bioinformatics, and music analysis.

The students are expected to be comfortable with programming and familiar with basic concepts in linear algebra and statistics. Relevant background material in linear algebra, probability theory and information theory will be made available during the course.

- Syllabus & Introduction
- Hand notes Aug 29, Aug 31 one, Aug 31 two.

- Linear Regression and L2 Regularization
- Hand notes Sep 7, Sep 12.
- Athens houses: training samples, test samples, and visualization code.

- Linear algebra and optimization in Python

- James H. Martin's Introduction to probabilities
- Jason Eisner's equestrian Introduction to probabilities
- Inderjit Dhillon's Linear Algebra Background
- Strang's Video Lectures on Linear Algebra
- Convex Optimization, Stephen Boyd and Lieven Vandenberghe, Cambridge University Press 2004
- Mike Brookes' Matrix Reference Manual
- Petersen et al.'s The Matrix Cookbook

- scikit-learn Machine Learning in Python
- Weka Data Mining Software in Java
- SVM
Implementation of SVMs in C^{light} - LIBSVM Implementation of SVMs in C++ and Java
- MALLET Java implementations of logistic regression, HMMs, linear chain CRFs, and other ML models.
- LibSVM applet demonstrating SVMs.
- k-Nearest Neighbor short animated video, by Antal van den Bosch