Skip to content

Latest commit

 

History

History
136 lines (102 loc) · 6.21 KB

README.md

File metadata and controls

136 lines (102 loc) · 6.21 KB

Machine Learning for Networking (ML4N)

polito

This repository contains all the materials, labs, projects, and resources for the Machine Learning for Networking (ML4N) course. It is structured to provide a comprehensive view of the course's theoretical and practical components.

⚠️ Important Notice

Note: This repository is for educational purposes only. Make sure to follow the course rules and guidelines when utilizing these materials.

Table of Contents

Overview

The Machine Learning for Networking course combines theoretical insights and practical applications to teach essential ML concepts and their use in networking. This repository consolidates the course content into a well-organized structure, facilitating easy access to theoretical material, hands-on labs, and project resources.

Structure

The repository includes the following directories:

  • Info/: Course rules, timetable, and cluster usage instructions.
  • Theory/: Lecture slides and notes covering core ML concepts.
  • Python/: Tutorials and exercises to build foundational Python and ML skills.
  • Labs/: Practical exercises and solutions covering Python, Numpy, Pandas, and networking-specific applications.
  • Projects/: Hands-on projects, datasets, and related documentation.
  • Exams/: Sample exams for practice.

Contents

Theory Slides

Slide ID Topics Covered
1 Introduction to ML4N
2 Data Exploration and Visualization
3 Data Preprocessing
4 Dimensionality Reduction
4 PCA Proof Sketch
5 Three Components of Machine Learning
6 Empirical Risk Minimization
7 Model Validation and Selection
8 Metrics and Hyperparameter Tuning
9 Gradient-Based Learning
10 Supervised Learning Techniques
11 Clustering
12 Neural Networks

Python Exercises

Exercise ID Topics Covered
1.1 Python Examples
1.2 Python Tuples and Lists
1.3 Python Dictionaries and Sets
1.4 Python Lambda Functions, Functions, and Classes
1.5 Python Files and Exceptions
2.1 Numpy Arrays
2.2 Numpy Operations
2.3 Numpy Array Manipulation
3.1 Pandas Series and Dataframes
3.2 Pandas Grouping
3.3 Pandas Operations (Extra)
4.1 Matplotlib Figures and Axes
4.2 Matplotlib Advanced Plots

Laboratories

Lab ID Topics Covered
1 Python basics
2 Numpy fundamentals
3 Pandas and Numpy integration
4 Data visualization and analysis
5 Dimensionality Reduction
6 Implement, use and evaluate a classifier from scratch
7 Supervised learning: build a basic ML pipeline for classification problem
8 Supervised learning with model selection, validation and hyper-parameter tuning
9 Video conferencing and RTP data analysis
10 Define and train neural network models using Pytorch

Projects

Explore various networking use cases:

  1. RTP Traffic - Traffic analysis and dataset usage.
  2. DDoS Attacks - Detecting and classifying network anomalies.
  3. Encrypted Data Classification - Handling encrypted traffic datasets.
  4. SSH Shell Attacks - Analysis using parquet datasets.
  5. Adversarial Attacks - Machine learning robustness in networks.
  6. YouTube CDN - Data collection and analysis.
  7. Web Services - Service performance metrics.
  8. Reddit - Social data analysis for networking insights.
  9. HTTPS Domains - Classification and analysis of HTTPS domains.

Exams

Usage

Setting Up the Repository

  1. Clone the repository:

    git clone https://github.com/ML4Net/Teaching-material.git
    cd Teaching-material
  2. Install any necessary dependencies as indicated in the specific labs or projects.

Working on Labs or Projects

Open the .ipynb files in Jupyter Notebook or any compatible environment. Follow the instructions provided in each lab or project document.

Contributing

We welcome contributions to improve and extend the repository. Please fork the repository and make a pull request with your changes.

License

This repository is licensed under the MIT License. See the LICENSE file for more details.