Machine Learning



  • Understand the paradigms and challenges of Machine Learning, distinguishing Supervised, Unsupervised and Reinforcement learning.
  • Learn the fundamental methods and their applications in data oriented knowledge discovery. Understand data features, the selection of models and their complexity.
  • Understand the advantages and disadvantages of the different methods.


  • Implement and adapt Machine Learning algorithms;
  • Model real data experimentally.
  • Interpret and evaluate experimental results.
  • Validate and compare different Machine Learning algorithms.

Soft Skills

  • Evaluate the suitability of each method to concrete applications and data sets.
  • Critical evaluation of the results.
  • Autonomy and self-reliance in the application and furthering studies in Machine Learning.

General characterization





Responsible teacher

João Alexandre Carvalho Pinheiro Leite, Ludwig Krippahl


Weekly - 6

Total - 48

Teaching language



Available soon


  • T. Mitchell. Machine Learning, McGraw-Hill, 1997.
  • C. M. Bishop. Pattern Recognition and Machine Learning, Springer, 2006.
  • E. Alpaydin. Introduction to Machine Learning, Second Edition, MIT Press, 2010.
  • Stephen Marsland. Machine Learning: An Algorithmic Perspective CRC Press, 2011

Teaching method

Lectures will cover the fundamental topics of the subject matter, which the students should complement with the given bibliography. All lecture materials will be supplied for further study. Lectures will include some time for questions and discussion of the subject matter.

Tutorial classes will be dedicated to exercises and guidance in the practical assignments, focusing on selected topics.

Class schedules and materials will be supplied online, as well as additional information regarding the course.

Evaluation method

The evaluation of this curricular unit is made by two components: theoretical/problems (T) and project (P). Each component contributes with 50% to the final grade.

Both components are evaluated in an integer scale from 0 to 20.

To pass, the student must have:

(i)  a grade of at least 9,5 points in the theoretical/problems component; and

(ii) a grade of at least 9.5 points in the project component;

The final grade is defined as the weighted average of the two components of evaluation, that is (0.5×T + 0.5×P), in an integer scale from 0 to 20 points.

Theoretical/problems component

This component is evaluated by 2 written tests. The grade of this component is the average of the 2 written tests.

Alternatively, this component can be evaluated by a written exam. The exam will be grade in two independent parts, each corresponding to one test and replacing its grade if better.

Tests and exam will be in person if in person tests are mandatory. If online tests are permitted, then they will be online.

Project component

This component is evaluated by 2 programming mini-projects, evaluated by a final written report and possibly intermediate reports.

Some tutorial classes will be allocating to the mini-projects.

The mini-projects are done in groups of students but the evaluation of this component is individual.

Grading of the different evaluation components is rounded to the first decimal place. The final grade is rounded to the closest integer value.

Students who did the project component  from 2016/17 onwards can, if they choose, retain their previous grade but they must not enroll on tutorial classes nor submit the assignments this year.

Subject matter

Introduction to Machine Learning

Machine Learning paradigms: Supervised Learning, Unsupervised Learning and Reinforcement Learning.


2.1 Types of Data

2.2 Measures of similarity and dissimilarity

2.3 Data normalization and visualization

2.4 Dimensionality reduction by Principal Component Analysis

 Supervised Learning

3.1 Regression

3.2 Decision Trees

3.3 Artificial Neural Networks

3.4 Support Vector Machines

3.5 Graphical models

3.6 K-nearest neighbour classifier

3.7 Methods for classifier evaluation and comparison

3.8 Ensembles

Unsupervised Learning

4.1 Partitional clustering

4.2 Probabilistic clustering

4.3 Partitional Fuzzy clustering

4.4 Hierarchical clustering

4.5 Markov chain

4.6 Clustering evaluation methods

4.6 Other unsupervised learning topics