Course Syllabus
Course Objectives: Machine learning is the study and design of algorithms that enables
computers/machines to learn from experience/data. This course is an introductory course on machine
learning covering a range of algorithms, focusing on the underlying models behind each approach, to
enable students to learn where and how to apply machine learning algorithms and why they work. The
course also emphasizes the foundations to prepare students for research in machine learning. The
subjects covered include: Bayesian decision theory, maximum likelihood parameter estimation, model
selection, mixture density estimation, probabilistic graphical models, support vector machines, neural
networks, decision trees, feature selection and dimensionality reduction, ensemble methods: boosting
and bagging.
Prerequisites: Probability EECE 3468/MATH3081 or equivalent for undergraduates, EECE
7204/DS5020 or equivalent for graduate students, knowledge of linear algebra
Programming Requirement: Must be a self-sufficient programmer. The recommended language for
assignments will be Python, though Matlab, Python, C/C++, R are commonly used by students. An
optional Python tutorial will be given in first few weeks of the class.
Topics Covered
- Review of Linear Algebra and Probability Theory
Bayesian Decision Theory
- Maximum-Likelihood (ML), MAP and Full Bayesian, Naïve Bayes
- Regression, Logistic Regression
- Neural Networks
- Support Vector Machines
- EM Algorithm and Application to Gaussian Mixture Models
- Model Selection
- Clustering: k-means, hierarchical clustering, spectral clustering
- Dimensionality Reduction (PCA, LDA)
- Decision Trees
- Combining Classifiers: Bagging, Boosting
- Graphical Models
Grading
There will be 4 homework assignments, all of which will involve a programming component, as well as a midterm and a final course project. The grade breakdown is as follows:
- Homeworks: 35%
- Quizzes: 35%
- Class Project: 20%
- Class Participation: 10%
- Bonus Point: Complete Trace Evaluation for +1%