https://github.com/sroman0/machine-learning-for-networking
https://github.com/sroman0/machine-learning-for-networking
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/sroman0/machine-learning-for-networking
- Owner: sroman0
- License: gpl-3.0
- Created: 2025-02-19T21:43:58.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-02-19T21:55:31.000Z (3 months ago)
- Last Synced: 2025-02-19T22:31:44.226Z (3 months ago)
- Language: Jupyter Notebook
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Machine Learning for Networking - Lab Exercises
This repository contains a collection of **Jupyter Notebook lab exercises** developed for the *"Machine Learning for Networking"* course at **Politecnico di Torino**, as part of the **Master's degree in Cybersecurity**. The exercises aim to provide hands-on experience in applying machine learning techniques to various networking challenges, including cybersecurity-related scenarios.
## 📑 Table of Contents
- [Course Overview](#course-overview)
- [Repository Structure](#repository-structure)
- [Requirements](#requirements)
- [Installation and Usage](#installation-and-usage)
- [1. Clone the Repository](#1-clone-the-repository)
- [2. Set Up a Virtual Environment (Optional)](#2-set-up-a-virtual-environment-optional)
- [3. Install Dependencies](#3-install-dependencies)
- [4. Run the Jupyter Notebooks](#4-run-the-jupyter-notebooks)
- [Covered Topics](#covered-topics)
- [Contributing](#contributing)
- [License](#license)
- [Acknowledgments](#acknowledgments)## Course Overview
The *"Machine Learning for Networking"* course focuses on the intersection of **machine learning (ML)** and **networking**, providing students with both theoretical knowledge and practical skills. The primary goal is to understand how ML techniques can be leveraged to solve complex networking problems, particularly in the **cybersecurity** domain.
### ✅ Key Learning Objectives:
- Develop proficiency in **Python** programming for ML applications.
- Understand and implement **data preprocessing** and **feature extraction** techniques.
- Apply **supervised** and **unsupervised learning** methods to networking datasets.
- Explore **anomaly detection** and **traffic classification** for network security.
- Analyze real-world **internet measurements** and **network traffic data**.## Repository Structure
```
Machine-Learning-For-Networking/
├── labs/
│ ├── lab1
│ ├── lab2
│ ├── lab3
│ ├── lab4
│ ├── lab5
│ ├── lab6
│ ├── lab7
│ ├── lab9
│ └── lab10
├── requirements.txt # Python package dependencies
├── .gitignore # Git ignore rules
├── LICENSE # License information
└── README.md # Project documentation
```## Requirements
To run the lab exercises, you will need:
- **Python 3.7+**
- **Jupyter Notebook or JupyterLab**
- The libraries listed in `requirements.txt`, including:
- `numpy`
- `pandas`
- `matplotlib`
- `scikit-learn`
- `seaborn`
- `jupyter`Install dependencies with:
```bash
pip install -r requirements.txt
```## Installation and Usage
### 1. Clone the Repository
```bash
git clone https://github.com/sroman0/Machine-Learning-For-Networking.git
cd Machine-Learning-For-Networking
```### 2. Set Up a Virtual Environment (Optional)
```bash
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
```### 3. Install Dependencies
```bash
pip install -r requirements.txt
```### 4. Run the Jupyter Notebooks
```bash
jupyter notebook
```Navigate to the `labs/` directory and open the desired notebook.
## Covered Topics
The lab exercises cover a variety of topics, including but not limited to:
- **Data Preprocessing**: Handling missing values, normalization, and feature selection.
- **Supervised Learning**: Techniques such as decision trees, support vector machines (SVM), and neural networks.
- **Unsupervised Learning**: K-means clustering, hierarchical clustering, and PCA.
- **Anomaly Detection**: Identifying unusual patterns in network data.
- **Traffic Classification**: Categorizing network traffic for improved security monitoring.
- **Visualization**: Using tools like `matplotlib` and `seaborn` to interpret data and model performance.## Contributing
Contributions are welcome! If you have suggestions or improvements, please open an issue or submit a pull request. Make sure to follow the existing code style and include clear commit messages.
## License
This project is licensed under the **GNU General Public License v3.0**.
See the [LICENSE](https://github.com/sroman0/Machine-Learning-For-Networking/blob/main/LICENSE) file for details.## Acknowledgments
- Developed for the *"Machine Learning for Networking"* course at **Politecnico di Torino** - Master's degree in **Cybersecurity**.
- Special thanks to the course instructors for their guidance and to fellow classmates for their collaboration.
- Datasets used in these labs are either publicly available or provided by the course instructors.---
For any questions, feel free to open an issue or contact the repository maintainer.