Data Structures and Algorithms, Level II: Hashing, Trees, Graphs (ML Foundations Series)
Published by Pearson
Extremely Efficient Data Retrieval and the Most Powerful ML Approaches
- Hashing for efficiency: Builds on introductory DSA (Data Structures and Algorithms) concepts to cover hashing, a critical technique for instantaneous data look-up regardless of dataset size.
- Tree-based ML models: Introduces tree-based data structures, which enable powerful machine learning models such as random forest and XGBoost.
- Graph-based ML computation: Covers graph-based data structures, which are key to lower-level representations in popular ML libraries like TensorFlow and PyTorch, including for highly flexible neural-network models.
The Machine Learning Foundations series of online trainings provides a comprehensive overview of all of the subjects — mathematics, statistics, and computer science — that underlie contemporary machine learning techniques, including deep learning and other artificial intelligence approaches. Extensive curriculum detail can be found at the course’s GitHub repo.
All of the classes in the ML Foundations series bring theory to life through the combination of vivid full-color illustrations, straightforward Python examples within hands-on Jupyter notebook demos, and comprehension exercises with fully-worked solutions.
The focus is on providing you with a practical, functional understanding of the content covered. Context will be given for each topic, highlighting its relevance to machine learning. You will be better positioned to understand cutting-edge machine learning papers and you will be provided with resources for digging even deeper into topics that pique your curiosity.
There are 14 classes in the series, organized into four subject areas:
- Linear Algebra (three classes)
- Linear Algebra for Machine Learning: Intro
- Linear Algebra for Machine Learning, Level II: Matrix Tensors
- Linear Algebra for Machine Learning, Level III: Eigenvectors
- Calculus (four classes)
- Calculus for Machine Learning: Intro
- Calculus for Machine Learning, Level II: Automatic Differentiation
- Calculus for Machine Learning, Level III: Partial Derivatives
- Calculus for Machine Learning, Level IV: Gradients & Integrals
- Probability and Statistics (four classes)
- Intro to Probability Theory
- Probability II and Information Theory
- Intro to Statistics
- Statistics II: Regression and Bayesian
- Computer Science (three classes)
- Intro to Data Structures and Algorithms
- DSA II: Hashing, Trees, and Graphs
- Optimization
Each of the four subject areas are fairly independent, however theory within a given subject area generally builds over the 3-4 classes — topics in later classes of a given subject area often assume an understanding of topics from earlier classes. Work through the individual classes based on your particular interests or your existing familiarity with the material.
(Note that at any given time, only a subset of the ML Foundations classes will be scheduled and open for registration.)
This class, DSA II: Hashing, Trees, and Graphs, builds on the Intro to DSA class to demonstrate hashing, a critical computer science technique that facilitates instantaneous data look-up no matter how large a set of data points you’re working with. Tree-based data structures are introduced, enabling powerful machine learning models such as random forest and XGBoost. Finally, graph-based data structures are covered. Graphs are essential because they are how many popular ML libraries (e.g., TensorFlow, PyTorch) represent computations, including infinitely flexible neural-network (e.g., deep learning) models.
What you’ll learn and how you can apply it
- Understand how, if you’re working with large data sets, hashing enables dramatically faster training of — and production-time inference with — machine learning models.
- Apply some of the most powerful ML techniques — the tree-based random forest and XGBoost models — hands-on in Python.
- Appreciate how graphs are used to represent layers of computation in the popular TensorFlow and PyTorch libraries, enabling infinitely flexible neural-network (e.g., deep learning) model architectures.
This live event is for you because...
- You use high-level software (e.g., scikit-learn, the Keras API, PyTorch Lightning) to train or deploy machine learning algorithms, and would now like to understand the fundamentals underlying the abstractions, enabling you to expand your capabilities
- You’re a software developer who would like to develop a firm foundation for the deployment of machine learning algorithms into production systems
- You’re a data scientist who would like to reinforce your understanding of the subjects at the core of your professional discipline
- You’re a data analyst or AI enthusiast who would like to become a data scientist or data/ML engineer, and so you’re keen to deeply understand the field you’re entering from the ground up (very wise of you!)
Prerequisites
- Programming: All code demos will be in Python so experience with it or another object-oriented programming language would be helpful for following along with the code examples.
- Computer Science: You should either have attended the Intro to Data Structures and Algorithms live training or be familiar with the content in Lessons 1-4 of Jon Krohn’s Data Structures, Algorithms, and ML Optimization LiveLessons.
Course Set-up
- During class, we’ll work on Jupyter notebooks interactively in the cloud via Google Colab. This requires zero setup and instructions will be provided in class.
Recommended Preparation
- Attend: Intro to Data Structures and Algorithms (ML Foundations Series) by Jon Krohn
If you’re feeling extremely ambitious, you can get a head start on the content we’ll be covering in class by viewing Lessons 5-7 of Jon Krohn’s Data Structures, Algorithms, and ML Optimization LiveLessons.
Note: The remainder of Jon’s ML Foundations curriculum is split across the following videos:
- Watch: Linear Algebra for Machine Learning
- Watch: Probability and Statistic for Machine Learning LiveLessons
- Watch: Data Structures, Algorithms, and Machine Learning Optimization LiveLessons
Recommended Follow-up
- Attend: Optimization: Gradient Descent and Deep Learning ML Foundations Series by Jon Krohn
- Watch: Data Structures, Algorithms, and ML Optimization LiveLessons by Jon Krohn
- Explore: Math for Machine Learning by Jon Krohn
- Explore: Deep Learning: The Complete Guide by Jon Krohn
Schedule
The time frames are only estimates and may vary according to how the class is progressing.
Segment 1: Sets and Hashing (50 min)
- Maps and Dictionaries
- Sets
- Hash Functions and Hash Tables
- Collisions
- Load Factor
- Hash Maps
- String Keys
- Hashing in ML
- Q&A: 5 minutes
- Break: 10 minutes
Segment 2: Tree-Based Data Structures (75 min)
- Decision Trees
- Random Forests
- XGBoost: Gradient-Boosted Trees
- Q&A: 5 minutes
- Break: 10 minutes
Segment 3: Graph-Based Data Structures (60 min)
- Terminology
- Directed Acyclic Graphs (DAGs)
- Graphs in TensorFlow and PyTorch
- TensorBoard
- Bonus: DataFrames
- Resources for Further Study of Data Structures & Algorithms
- Q&A: 15 minutes
Course wrap-up and next steps (15 minutes)
Your Instructor
Jon Krohn
Jon Krohn is Co-Founder of the AI software firm Y Carrot and a Fellow at Lightning AI. He authored the book Deep Learning Illustrated, an instant #1 bestseller that was translated into seven languages. He is also the host of SuperDataScience, the data science industry’s most listened-to podcast. Jon is renowned for his compelling lectures, which he offers at leading universities and conferences, as well as via his award-winning YouTube channel. He holds a PhD from Oxford and has been publishing on machine learning in prominent academic journals since 2010.