Fundamentals of Machine Learning

460-2064/01 | 460-2064/02 | 460-8703/01 | Winter 2025/26

Course Overview

This course provides an introduction to the fundamental concepts of machine learning. Students will learn about supervised and unsupervised learning, model evaluation, and practical applications of machine learning algorithms.

Lectures

πŸ“š

Lecture 0: Course Introduction

Course content and its evaluation.
List of recommended sources.

This introductory lecture provides an overview of the course structure, content, and evaluation methods. It also includes a list of recommended textbooks and online resources to support student learning throughout the course.

β–Ό

Learning Objectives

  • How to pass the course
  • Whats included in this course
  • Recommended literature and online resources
  • Understanding the course structure and expectations
πŸ“„ Download Presentation
πŸ“š

Lecture 1: Course Motivation

Basic concepts of machine learning.
Overview of key principles.

This introductory lecture covers the motivation behind machine learning and the real-world examples that illustrate its importance. A dicussion on the various types of machine learning approaches will also be included.

β–Ό

Learning Objectives

  • Understand what machine learning is and why it matters
  • Recognize ML applications in daily life
  • Distinguish between different types of ML approaches
  • Appreciate the transformative potential of ML across industries
πŸ“„ Download Presentation
πŸ“š

Lecture 2: Data and their Properties

Data and its significance
Difference data sources

This lecture delves into the importance of data in machine learning. Students will learn about different types of data, and their properties, and how to preprocess data for effective model training.

β–Ό

Learning Objectives

  • Understanding sources of data
  • Understanding data types
  • Main characteristic of numerical data
  • Specifics of different data types
πŸ“„ Download Presentation
πŸ“š

Lecture 3: Statistical Data Features

Statistical properties of data
Covariance and correlation.

This lecture delves into the importance of statistical properties of data. Students will learn about different data distribution, and how to compare two numerical values.

β–Ό

Learning Objectives

  • Understanding statistical properties
  • Mean, Mediam and Mode of data
  • Central tendency
  • Covariance and correlation
πŸ“„ Download Presentation
πŸ“š

Lecture 4: Clustering

Similarity and Distance understanding
Clustering algorithms

This lecture introduces into clustering algorithms. Describes the concept of similarity and distance between data points. Various clustering techniques such as K-Means and Hierarchical Clustering will be discussed. Also importance of clustering interpretation will be discussed.

β–Ό

Learning Objectives

  • Understanding similarity and distance
  • K-means algorithm
  • Hierarchical Clustering algorithm
  • Cluster interpretations
πŸ“„ Download Presentation
πŸ“š

Lecture 5: Knowledge representation

Knowledge representation principles
Knowledge representation techniques

This lecture introduces into knowledge representation. Describes the concept of how knowledge can be represented in various forms. Various knowledge representation techniques such as rules and frames will be discussed. Also importance of knowledge representation interpretation will be discussed.

β–Ό

Learning Objectives

  • Understanding knowledge representation
  • Knowledge representation techniques
  • Rules and frames
  • Knowledge representation interpretation
πŸ“„ Download Presentation
πŸ“š

Lecture 6: Classification

Classification principles
Decision trees, Random forrests.

This lecture introduces classification principles, including nearest neighbor classification, Naive bayes algorithm, tree-based classification algorithms. Basic decision-tree algorithm is described in detail including split criteria. Ensable variants are introduced in lower detail with their benefits. Evaluation of the classification is also introduced.

β–Ό

Learning Objectives

  • Understanding classification algorithms
  • Nearest neighbor classifier
  • Naive bayes approach
  • Tree-based algorithms
  • Evaluation of classification
πŸ“„ Download Presentation
πŸ“š

Lecture 7: Evaluation metrics for Machine Learning

Principles of evaluation of ML models
Decision trees, Random forrests.

This lecture introduces evaluation metrics for machine learning models, including accuracy, precision, recall, F1 score, and ROC-AUC. The importance of each metric is discussed in the context of different types of ML problems. Practical examples are provided to illustrate how to compute and interpret these metrics.

β–Ό

Learning Objectives

  • Understanding evaluation metrics for ML models
  • Accuracy, precision, recall
  • F1 score, ROC-AUC
  • Interpreting evaluation results
  • Practical examples and applications
πŸ“„ Download Presentation
πŸ“š

Lecture 8: Regression and Neural networks

Principles of regression analysis
Introduction to neural networks.

This lecture covers the fundamentals of regression analysis, including linear regression, polynomial regression, and regularization techniques. Additionally, it introduces the basics of neural networks, including architecture, activation functions, and training processes.

β–Ό

Learning Objectives

  • Understanding regression analysis techniques
  • Linear regression, polynomial regression
  • Regularization techniques
  • Basics of neural networks
  • Architecture, activation functions, training processes
πŸ“„ Download Presentation
πŸ“š

Lecture 9: Data transformations

Principles of data transformation
Application of various transformation techniques.

This lecture covers the data transformation techniques used to preprocess and manipulate data for machine learning models. Data cleansing, normalization, standardization, and feature engineering will be discussed in detail, along with practical examples of their application.

β–Ό

Learning Objectives

  • Understanding data transformation techniques
  • Data cleansing, normalization, standardization
  • Feature engineering
  • Practical applications of data transformations
πŸ“„ Download Presentation

Exercises

πŸ’»

Exercise 1: Environment setup and first experiments

Hands-on practice session.
Basic working environment.

In this practical exercise, students will set up their working environment for machine learning experiments. We'll guide you through installing necessary software and libraries, and you'll run your first simple machine learning experiments.

β–Ό

Exercise Objectives

  • Test the experimental environment
  • Learn basics of the tools and libraries used
  • Test first data analysis
  • Gain confidence in using the tools and methods
πŸ“„ Jupyter πŸ“„ Colab
πŸ’»

Exercise 2: Data visualization

Hands-on practice session.
Basic working environment.

In this practical exercise, students will set up their working environment for machine learning experiments. We'll guide you through installing necessary software and libraries, and you'll run your first simple machine learning experiments.

β–Ό

Exercise Objectives

  • Test the experimental environment
  • Learn basics of the tools and libraries used
  • Test first data analysis
  • Gain confidence in using the tools and methods
πŸ“„ Jupyter πŸ“„ Colab
πŸ’»

Exercise 3: Statistical Data Properties

Hands-on practice session.
Computation of statistical features

Exercise 3 uses the Kaggle House Prices data to practice advanced visualization: loading the dataset, fixing display limits, correctly treating quasi-categorical numerics (e.g., OverallQual/OverallCond), and exploring with seaborn pairplots, subplots (boxplot + countplot), heatmaps of correlations, and a regression scatter.

β–Ό

Exercise Objectives

  • Deal with relationship between variables
  • Understanding pairplot.
  • Computation of statistical features
  • Heatmap and correlation matrix
πŸ“„ Jupyter πŸ“„ Colab
πŸ’»

Exercise 4: Clustering

Hands-on practice session
Computation of clustering of data

Exercise focuses on practical k-means clustering on a real world dataset as well as artificial data. Students will learn to preprocess data, choose the number of clusters, and interpret clustering results using visualizations.

β–Ό

Exercise Objectives

  • Deal with distance measurement of data.
  • Application of k-means algorithm.
  • Visualization of clustering results.
  • Interpretation of clusters.
πŸ“„ Jupyter πŸ“„ Colab
πŸ’»

Exercise 5: Hierarchical Clustering

Hands-on practice session
Computation of clustering of data using Hierarchical Clustering

Exercise focuses on practical hierarchical clustering on a real world dataset as well as artificial data. Students will learn to preprocess data, choose the number of clusters, and interpret clustering results using visualizations.

β–Ό

Exercise Objectives

  • Deal with distance measurement of data.
  • Application of hierarchical clustering.
  • Visualization of clustering results.
  • Interpretation of clusters.
πŸ“„ Jupyter πŸ“„ Colab
πŸ’»

Exercise 6: Hands-on clustering exercise

Hands-on practice session
Application of clustering on real-world data

Exercise focuses on practical clustering on a real world dataset. Students will learn to preprocess data, choose the number of clusters, and interpret clustering results using visualizations.

β–Ό

Exercise Objectives

  • Deal with distance measurement of data.
  • Application of clustering.
  • Visualization of clustering results.
  • Interpretation of clusters.
πŸ“„ Jupyter πŸ“„ Colab
πŸ’»

Exercise 7: Decision Tree

Hands-on experience with Gini index computation.
Application of decision trees on real-world data

Exercise focuses on practical implementation of decision trees splitting criteria on iris datasets. When the splitting criteria is understood, students will apply decision trees on a real-world datasets.

β–Ό

Exercise Objectives

  • Understand the concept of decision trees.
  • Learn about Gini index and its role in decision trees.
  • Implement splitting criteria on the iris dataset.
  • Apply decision trees to a real-world dataset.
πŸ“„ Jupyter πŸ“„ Colab
πŸ’»

Exercise 8: Classification

Hands-on experience with classification algorithms.
Application of classification techniques on real-world data

Exercise focuses on practical implementation of classification algorithms. When the algorithms are understood, students will apply them on real-world datasets.

β–Ό

Exercise Objectives

  • Understand the concept of classification algorithms.
  • Learn about different classification techniques and their applications.
  • Apply the algorithm from the Scikit-learn library on the datasets.
  • Apply classification techniques to a real-world dataset.
πŸ“„ Jupyter πŸ“„ Colab
πŸ’»

Exercise 9: Classification Hands-on

Hands-on experience with classification algorithms.
Application of classification techniques on real-world data

Exercise focuses on practical implementation of classification algorithms. When the algorithms are understood, students will apply them on real-world datasets.

β–Ό

Exercise Objectives

  • Application of classification algorithms on real-world dataset.
  • Usage of Scikit-learn for classification tasks.
  • Search for optimal hyperparameters.
  • Comparison of different classification algorithms.
πŸ“„ Jupyter πŸ“„ Colab
πŸ’»

Exercise 10: Regression

Experimenting with regression algorithms.
Application of regression techniques on real-world data

Exercise focuses on using various regression algorithms from Scikit-learn library. Algorithms are applied on different datasets and their performance is evaluated.

β–Ό

Exercise Objectives

  • Application of regression algorithms on real-world dataset.
  • Usage of Scikit-learn for regression tasks.
  • Evaluate the models using defined measures.
  • Comparison of different regression algorithms.
πŸ“„ Jupyter πŸ“„ Colab
πŸ’»

Exercise 11: Keras

Experimenting with neural networks and Keras library.
Application of modern framework for neural networks.

Exercise focuses on using neural networks and Keras library. Testing of Deep learning approach with more flexibility than Scikit-learn.

β–Ό

Exercise Objectives

  • Application of neural networks on real-world dataset.
  • Usage of Keras for deep learning tasks.
  • Evaluate the models using defined measures.
  • Comparison of different neural network architectures.
πŸ“„ Jupyter πŸ“„ Colab

Exploration Analysis and Clustering Project

πŸ“Š Project Overview

In this project, you will perform exploratory data analysis (EDA) and clustering analysis on an assigned dataset. This hands-on project will help you develop practical skills in data preprocessing, visualization, and unsupervised learning.

πŸ† Total Points: 20-45 points

πŸŽ„ Project Deadline

December 7, 2025

πŸ“‹ Task 1: Exploratory Data Analysis (15 points)

  • Perform exploratory data analysis on your assigned dataset
  • Create meaningful visualizations to understand data distributions and relationships
  • Formulate and test hypotheses based on your observations
  • πŸ”‘ MANDATORY: Comment your analysis insights in Markdown cells
  • Explain the patterns, outliers, and correlations you discover

🎯 Task 2: Clustering Analysis (30 points)

πŸ“ Preprocessing Pipeline: Describe all preprocessing operations for each feature (scaling, encoding, dropping, etc.)

Part 1: K-Means Clustering

  • Apply K-Means clustering algorithm to your preprocessed data
  • πŸš€ Use the elbow method and/or silhouette coefficient to determine optimal cluster count
  • Visualize results using boxplots, bar plots, and scatter plots
  • πŸ”‘ MANDATORY: Define cluster characteristics in Markdown cells
  • Compare feature values across different clusters

Part 2: Alternative Clustering Algorithm

  • Choose another algorithm from sklearn documentation
  • πŸš€ Agglomerative clustering is recommended as a good starting point
  • Research the algorithm through blog posts, books, or videos
  • Repeat the analysis process from Part 1
  • Compare results with K-Means clustering

⚠️ IMPORTANT: Part 2 is worth 10 points. Skipping it limits your maximum score to 35 points!

πŸ“Œ General Requirements

  • βœ… MANDATORY: Include a summary at the end with the most interesting insights
  • Upload a Jupyter Notebook with descriptions or PDF report + source code
  • πŸ’‘ Estimated time: 6-12 hours (varies by skill level)
  • Use your VSB login when uploading your project.

πŸ“Š Available Datasets

1️⃣ Audi Used Car Listings Analysis

Scenario: AutoValue dealership needs to optimize pricing strategy for used Audi vehicles.

Analyze factors influencing used car prices including model, year, transmission, mileage, fuel type, road tax, MPG, and engine size. Help the dealership understand market segments and pricing patterns.

Key Features: Model, Year, Price, Transmission, Mileage, Fuel Type, Tax, MPG, Engine Size

πŸ“₯ Download Audi Dataset

2️⃣ FIFA 22 Player Performance Analysis

Scenario: Football Insights analytics company needs player performance insights for scouts and clubs.

Comprehensive dataset of all FIFA 22 players with detailed attributes (pace, shooting, dribbling, defending). Select relevant features based on your hypothesis about player types and performance characteristics.

Note: Use players_fifa22.csv and select a subset of columns for your analysis

πŸ“₯ Download FIFA Dataset

3️⃣ Student Performance & Social Factors

Scenario: Education Insights Research Group analyzing factors affecting student academic performance.

Survey data from secondary school students including social background, gender, study habits, family situation, and academic grades. Understand patterns that influence educational outcomes.

Available: Math course (student-mat.csv) and Portuguese course (student-por.csv) datasets

Key Features: Demographics, Study Time, Family Support, Social Activities, Grades

πŸ“₯ Download Student Dataset

4️⃣ Wine Chemical Analysis for Quality Control

Scenario: VinoSpectra analyzing chemical constituents of wines from three Italian cultivars.

Chemical analysis of wines with 13 constituents including alcohol, acidity, phenols, color intensity, and more. Discover how chemical composition relates to wine characteristics and cultivar types.

Key Features: Alcohol, Malic Acid, Ash, Magnesium, Phenols, Flavonoids, Color Intensity, Proline

πŸ“₯ Download Wine Dataset

πŸ’‘ Custom Dataset: Interested in a specific topic? Contact your instructor to propose an alternative dataset. We'll evaluate if it's suitable for this project.

Classification and/or Regression Project

πŸ“Š Project Overview

In this project, you will perform classification or regression analysis on an assigned dataset. This hands-on project will help you develop practical skills in data preprocessing, visualization, and supervised learning.

πŸ† Total Points: 15-35 points

πŸŽ† Project Deadline

January 11, 2026

πŸ“‹ Data preparation

  • Every project must include description of the dataset features and a brief exploration analysis so you get to know the data you are working with
  • πŸ“’Describe what operations you are performing for each of the features
    • e.g. No operation needed, dropping the feature, Min-Max scaling, One-hot encoding, Categorization (numeric -> categorical) etc.
    • You can even try to experiment with many different preprocession operations and you will see what works the best - this is totally up to you!
  • πŸ”Ž What model performance metrics have you decided to use?
    • e.g. Accuracy, Precision, Recall, F1-score etc.
    • πŸ“’ State which one of the scores is the most important from your point of view given the class balance, task, ... in a Markdown cell!

🎯 Additional requirements

  • 🎯 Try at least 3 different classification algorithms
    • 🌳 Decision tree is a mandatory one
    • Other algorithm choices depends solely on you - you can find many different algorithms in the scikit-learn docs.
    • We can recommend the Multi-layer Perceptron (MLP), Random Forest, AdaBoost, k-Nearest Neighbors or Naive Bayes.
    • Check blog posts, book chapters or Youtube videos about the algoritmhs you have chosen so you have a basic knowledge about its key concepts.
    • πŸ’‘ You know some of them already from the lectures πŸ™‚
  • k-Fold cross validation will be used for the algoritmh performance evaluation
    • e.g. 5-fold, 10-fold, ...
    • πŸ“’ State if you used standard or stratified version and why in a Markdown cell.
  • πŸš€ Your project must include hyper-parameters tuning
    • Given the fundamental knowledge about the selected algorithms select suitable parameters for the tuning (See scikit-learn docs for details).
    • Do at least 15 experiments with different values of selected parameters in total.
    • πŸ’‘ This part can be imbalanced! You don't have to try 5 different setting for each of algorithm - You can focus on a single algorithm more however at least 2 parameter settings have to be tried for every algorithm e.g. 2 for Decision Tree, 2 for Random Forest, 11 for MLP
    • πŸ“Š Create a table with header like | Algorithm | Parameters | Metrics score | for you experiments results
    • πŸ“’ Explain the parameters effect on the model performance in a Markdown cell

πŸ“Œ General Requirements

  • βœ… Mandatory part of every project is a summary at the end in which you summarize the most interesting insight obtained.
  • Upload a Jupyter Notebook with descriptions or PDF report + source code
  • πŸ’‘ Estimated time for the project is 5-10h, this value heavily depends on your skill, but you can use it as a guidance for a project size.

πŸ“Š Available Datasets

1️⃣ Credit Card Customers Churn Prediction

Scenario: BankGuard financial services is facing increased customer churn in their credit card services.

Help predict which customers are likely to churn so the bank can take proactive retention steps. The Customer Retention Manager needs to identify at-risk customers to offer personalized incentives and improve services before it's too late.

Target Variable: Attrition_Flag

Key Features: Customer Age, Gender, Education Level, Marital Status, Income Category, Card Category, Credit Limit, Transaction Amount, Transaction Count, etc.

⚠️ IMPORTANT: DROP THE LAST 2 COLUMNS starting with "Naive_Bayes_Classifier..."

πŸ“₯ Download Credit Card Dataset

2️⃣ Adult Income Prediction

Scenario: Predict whether income exceeds $50K/year based on census data.

Classic dataset for binary classification tasks. Analyze demographic and employment factors that influence income levels in the population.

Target Variable: class (>50K or <=50K)

Key Features: Age, Workclass, Education, Marital Status, Occupation, Race, Sex, Capital Gain/Loss, Hours per Week, Native Country

πŸ’‘ Note: The .data files are plain CSV/text files

πŸ“₯ Download Adult Dataset

3️⃣ Heart Failure Prediction

Scenario: HealthGuard Analytics is tackling cardiovascular diseases (CVDs), the leading cause of death worldwide with 17.9 million deaths annually.

Develop a machine learning model to predict the likelihood of heart disease in individuals based on health metrics and risk factors. Help the medical community identify at-risk patients early.

Target Variable: HeartDisease (1: disease present, 0: normal)

Key Features: Age, Sex, Chest Pain Type, Resting BP, Cholesterol, Fasting Blood Sugar, Resting ECG, Max Heart Rate, Exercise Angina, Oldpeak, ST Slope

πŸ“₯ Download Heart Disease Dataset

4️⃣ KDD Cup 99 Network Intrusion Detection

Scenario: CyberDefend Analytics focuses on cybersecurity for government and military networks facing increasing cyberattacks.

Build a network intrusion detection system to distinguish between malicious attacks and normal traffic. This dataset simulates a military network environment with different types of network connections.

Target Variable: label (normal or various attack types)

Key Features: TCP/UDP network connection features (42 features total describing network behavior)

πŸ’‘ Note: If you have basic networking knowledge, the feature names are self-describing. Features are similar to the UNSW_NB15 dataset.

πŸ“₯ Download KDD Cup 99 Dataset

5️⃣ UNSW-NB15 Network Security

Scenario: CyberSecure Labs protects modern networks from evolving cyber threats including sophisticated attacks on government and private systems.

Comprehensive network dataset combining real-world modern traffic with simulated cyberattacks created using IXIA PerfectStorm tool. Includes nine attack types: Fuzzers, Backdoors, DoS, Exploits, Worms, and more.

Target Variable: label OR attack_cat (choose one and drop the other to avoid information leak!)

Key Features: 49 features generated by Argus and Bro-IDS tools describing TCP/UDP network connections

⚠️ CRITICAL: Use UNSW_NB15_training-set.csv and UNSW_NB15_testing-set.csv files. Choose EITHER "label" OR "attack_cat" as target - drop the other to prevent information leakage!

πŸ“₯ Download UNSW-NB15 Dataset

πŸ’‘ Custom Dataset: Interested in a specific topic? Contact your instructor with a dataset of your individual choice. They will evaluate if the dataset is suitable for this project and allow replacement of the assigned data.