A Complete Machine Learning Package
Techniques, tools, best practices and everything you need to to learn machine learning!
This is a comprehensive repository containing 30+ notebooks on Python programming, data manipulation, data analysis, data visualization, data cleaning, classical machine learning, Computer Vision and Natural Language Processing(NLP).
All notebooks were created with the readers in mind. Every notebook starts with a highlevel overview of any specific algorithm/concepts being covered. Wherever possible, visuals are used to make things clear.
Viewing and Running the Notebooks
The easiest way to view all the notebooks is to use Nbviewer.
If you want to play with the codes, you can use the following platforms:
Deepnote will direct you to Intro to Machine Learning
. Heads to the project side bar for more notebooks.
Tools Overview
The following are the tools that are covered in the notebooks. They are popular tools that machine learning engineers and data scientists need in one way or another and day to day.

Python is a high level programming language that has got a lot of popularity in the data community and with the rapid growth of the libraries and frameworks, this is a right programming language to do ML.

NumPy is a scientific computing tool used for array or matrix operations.

Pandas is a great and simple tool for analyzing and manipulating data from a variety of different sources.

Matplotlib is a comprehensive data visualization tool used to create static, animated, and interactive visualizations in Python.

Seaborn is another data visualization tool built on top of Matplotlib which is pretty simple to use.

ScikitLearn: Instead of building machine learning models from scratch, ScikitLearn makes it easy to use classical models in a few lines of code. This tool is adapted by almost the whole of the ML community and industries, from the startups to the big techs.

TensorFlow and Keras for neural networks: TensorFlow is a popular deep learning framework used for building models suitable for different fields such as Computer Vision and Natural Language Processing. At its backend, it uses Keras which is a high level API for building neural networks easily. TensorFlow has gained a lot of popularity in the ML community due to its complete ecosystem made of wholesome tools including TensorBoard, TF Datasets, TensorFlow Lite, TensorFlow Extended, TensorFlow.js, etc...
Outline
Part 1  Intro to Python and Working with Data
0  Intro to Python for Machine Learning
1  Data Computation With NumPy
 Creating a NumPy Array
 Selecting Data: Indexing and Slicing An Array
 Performing Mathematical and other Basic Operations
 Perform Basic Statistics
 Manipulating Data
2  Data Manipulation with Pandas
 Basics of Pandas
 Series and DataFrames
 Data Indexing and Selection
 Dealing with Missing data
 Basic operations and Functions
 Aggregation Methods
 Groupby
 Merging, Joining and Concatenate
 Beyond Dataframes: Working with CSV, and Excel
 Real World Exploratory Data Analysis (EDA)
3  Data Visualization with Matplotlib and Seaborn
 Data Visualization with Matplotlib
 Data Visualization with Seaborn
 Optional: Data Visualization with Pandas
4  Real World Data  Exploratory Analysis and Data Preparation
 Exploratory Data Analysis
 Intro to Data Preparation
 Handling Categorical Features
 Feature Scaling
 Handling Missing Values
Part 2  Machine Learning
5  Intro to Machine Learning
 Intro to Machine Learning
 Machine Learning Workflow
 Evaluation Metrics
 Handling Underfitting and Overfitting
6  Classical Machine Learning with ScikitLearn
 Intro to ScikitLearn for Machine Learning
 Linear Models for Regression
 Linear Models for Classification
 Support Vector Machines: Intro and Regression
 Support Vector Machines for Classification
 Decision Trees: Intro and Regression
 Decision Trees for Classification
 Random Forests: Intro and Regression
 Random Forests for Classification
 Beyond Random Forests: More Ensemble Models
 Intro to Unsupervised Learning with KMeans Clustering
 A Practical Intro to Principal Component Analysis
Part 3  Deep Learning
7  Intro to Artificial Neural Networks and TensorFlow

Intro to Articial Neural Networks

Why Deep Learning

A Single Layer Neural Network

Activation Functions

Types of Deep Learning Architectures
 Densely Connected Networks
 Convolutional Neural Networks
 Recurrent Neural Networks
 Transformers

Challenges in Training Deep Neural Networks


Intro to TensorFlow for Artificial Neural Networks
 What is TensorFlow?
 TensorFlow Model APIs
 A Quick Tour into TensorFlow Ecosystem
 Basics of Tensors
8  Deep Computer Vision with TensorFlow

Intro to Computer Vision with Convolutional Neural Networks(CNN)
 Intro to Computer Vision and CNNs
 What is Convolutional Neural Networks?
 A Typical Architecture of Convolutional Neural Networks
 Coding ConvNets: Image Classification
 Intro to Computer Vision and CNNs

ConvNets for Real World Data and Image Augmentation
 Intro  Real World Datasets and Data Augmentation
 Getting Started: Real World Datasets and Overfitting
 Image Augmentation with Keras Image Augmentation Layers

CNN Architectures and Transfer Learning
 Looking Back: A Review on State of the Art CNN Architectures
 Intro to Transfer Learning and using Pretrained Models
 Quick Image Classification with Pretrained Models
 Transfer Learning and FineTuning in Practice
 Quick Image Classification and Transfer Learning with TensorFlow Hub
9  Natural Language Processing with TensorFlow

Intro to NLP and Text Processing with TensorFlow
 Intro to Natural Language Processing
 Text Processing with TensorFlow
 Using TextVectorization Layer

Using Word Embeddings to Represent Texts
 Intro to Word Embeddings
 Embedding In Practice
 Using Pretrained Embeddings

Recurrent Neural Networks (RNNs)
 Intro to Recurrent Neural Networks
 Simple RNNs In Practice: Movies Sentiment Analysis
 Intro to Long Short Terms Memories
 LSTMs in Practice : News Classification

Using Convolutional Neural Networks for Texts Classification
 Intro Convolutional Neural Networks for Texts
 CNN for Texts in Practice: News Classification
 Combining ConvNets and RNNs

Using Pretrained BERT for Text Classification
 Intro to BERT
 In Practice: Finetuning a Pretrained BERT
Used Datasets
Many of the datasets used for this repository are from the following sources:
Further Resources
Machine Learning community is very vibrant. There are many faboulous learning resources, some of which are paid or free available. Here is a list of courses that has got high community ratings. They are not listed in an order they are to be taken.
Courses

Machine Learning by Coursera: This course was tought by Andrew Ng. It is one of the most popular machine learning courses, it has been taken by over 4M of people. The course focuses more about the fundamentals of machine learning techniques and algorithms. It is free on Coursera.

Deep Learning Specialization: Also tought by Andrew Ng., Deep Learning Specialization is also a foundations based course. It teaches a decent foundations of major deep learning architectures such as convolutional neural networks and recurrent neural networks. The full course can be audited on Coursera, or watch freely on Youtube.

MIT Intro to Deep Learning: This course provide the foundations of deep learning in resonably short period of time. Each lecture is one hour or less, but the materials are still the best in classs. Check the course page here, and lecture videos here.

CS231N: Convolutional Neural Networks for Visual Recognition by Stanford: CS231N is one of the best deep learning and computer vision courses. The 2017 version was taught by FeiFei Li, Justin Johnson and Serena Yeung. The 2016 version was taught by FeiFei, Johnson and Andrej Karpathy. See 2017 lecture videos here, and other materials here.

Practical Deep Learning for Coders by fast.ai: This is also an intensive deep learning course pretty much the whole spectrum of deep learning architectures and techniques. The lecture videos and other resources such as notebooks on the course page.

Full Stack Deep Learning: While the majority of machine learning courses focuses on modelling, this course focuses on shipping machine learning systems. It teaches how to design machine learning projects, data management(storage, access, processing, versioning, and labeling), training, debugging, and deploying machine learning models. See 2021 version here and 2019 here. You can also skim through the project showcases to see the kind of the courses outcomes through learners projects.

NYU Deep Learning Spring 2021: Taught at NYU by Yann LeCun, Alfredo Canziani, this course is one of the most creative courses out there. The materials are presented in amazing way. Check the lecture videos here, and the course repo here.

CS224N: Natural Language Processing with Deep Learning by Stanford: If you are interested in Natural Language Processing, this is a great course to take. It is taught by Christopher Manning, one of the world class NLP stars. See the lecture videos here.
Books
Below is of the most awesome machine learning books.

The HundredPage Machine Learning Book: Authored by Andriy Burkov, this is one of the shortest but concise and well written book that you will ever find on the internet. You can read the book for free here.

Machine Learning Engineering: Also authored by Andriy Burkov, this is another great machine learning book that uncover each step of machine learning workflow, from data collection, preparation....to model serving and maintenance. The book is also free here.

Handson Machine Learning with ScikitLearn, Keras, and TensorFlow: Authored by Aurelion Geron, this is one of the best machine learning books. It is clearly written and full of ideas and best practices. You can ge the book here, or see its repository here.

Deep Learning: Authored by 3 deep learning legends, Ian Goodfellow and Yoshua Bengio and Aaron Courville, this is one of the great deep learning books that is freely available. You can get it here.

Deep Learning with Python: Authored by Francois Chollet, The Keras designer, this is a very comprehensive deep learning book. You can get the book here, and the book repo here.

Dive into Deep Learning: This is also a great deep learning book that is freely available. The book uses both PyTorch and TensorFlow. You can read the entire book here.

Neural Networks and Deep Learning: This is also another great deep learning online book by Michael Nielsen. You can read the entire book here.
If you are interested in more machine learning and deep learning resources, check this, this
This repository was created by Jean de Dieu Nyandwi. You can find him on: