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.
Note: This repository is for educational purposes only. Make sure to follow the course rules and guidelines when utilizing these materials.
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.
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.
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 |
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 |
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 |
Explore various networking use cases:
- RTP Traffic - Traffic analysis and dataset usage.
- DDoS Attacks - Detecting and classifying network anomalies.
- Encrypted Data Classification - Handling encrypted traffic datasets.
- SSH Shell Attacks - Analysis using parquet datasets.
- Adversarial Attacks - Machine learning robustness in networks.
- YouTube CDN - Data collection and analysis.
- Web Services - Service performance metrics.
- Reddit - Social data analysis for networking insights.
- HTTPS Domains - Classification and analysis of HTTPS domains.
- ML4N_exam_01_2024.pdf: Official exam from 2024.
- ML4N_exam_sample_2024.pdf: Sample exam for practice.
-
Clone the repository:
git clone https://github.com/ML4Net/Teaching-material.git cd Teaching-material
-
Install any necessary dependencies as indicated in the specific labs or projects.
Open the .ipynb
files in Jupyter Notebook or any compatible environment. Follow the instructions provided in each lab or project document.
We welcome contributions to improve and extend the repository. Please fork the repository and make a pull request with your changes.
This repository is licensed under the MIT License. See the LICENSE file for more details.