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