This repository contains exercises, resources, and information for learning machine learning concepts and applying them to networking.
- Networking videos, which provide necessary networking background. You are strongly encouraged to develop a firm understanding of networking, as this course will apply concept
- Machine learning videos provide backgound on machine learning concepts.
- The course wiki has more resources, including links to past projects, readings, and project ideas.
A general structure for a short course on this material is as follows. Each lecture has (1) a set of notes and slides explaining concepts, (2) an accompanying Jupyter Notebook with example applications from networking to make the concepts more concrete and further expand on networking concepts.
| Module | Topic | Activity |
|---|---|---|
| 1 | Overview and Motivation | Python Basics |
| 2 | Measurement: Data and Feautres | Packet Capture |
| 3 | Machine Learning Pipelines | Pipelines and Model Selection |
| 4 | Linear Regression | IoT: Energy Prediction |
| 5 | Logistic Regression | DNS Query Detection |
| 6 | Naive Bayes | Spam Filtering |
| 7 | Trees and Ensembles | Activity Recognition |
| 8 | Deep Learning | DDoS Detection |
| 9 | Unsupervised Learning | Traffic Clustering |
| 10 | Automated Machine Learning | nprintML |
All of the notebooks, notes, and slides for each lecture can be found in the respective directory.
The repository has the following organization:
- slides/ - slides for each lecture
- notes/ - notebooks for each lecture
- activities/ - notebooks for each lecture