
Embark on a comprehensive, project-driven machine learning and deep learning course from zero to 80 projects, using Google Colab, Python, and supervised, unsupervised, neural networks, and PCA topics.
To succeed in this course, study the material sequentially from section one, don't skip any hands-on lectures, and code yourself after each lesson to ensure 100% understanding.
Explore the concept of intelligence and why we want machines to be intelligent. Learn machine learning basics: supervised learning with labeled data, unsupervised learning with unlabeled data, and deep learning models and applications.
Explore how intelligence means learning from experience, acquiring and applying knowledge, and adopting knowledge to a changing world, with examples of recognizing objects and predicting events.
Explore the relationship between artificial intelligence, machine learning, and deep learning, and learn how models learn from data without being explicitly programmed to perform multiple tasks.
Explore supervised machine learning, focusing on labeled data, input features (X) and output labels (Y), and its two applications: classification with discrete classes and regression with continuous outputs.
Explore unsupervised machine learning by identifying patterns in unlabeled data and clustering similar features or samples using methods like k-means clustering, hierarchical clustering, and dbscan.
Understand deep learning, a subset of machine learning, as it uses multiple neural layers to handle tasks like face detection, image classification, and object detection that traditional methods struggle with.
Learn to use Google Colab to upload folders to Google Drive, mount Google Drive, set the correct path, and run notebooks with pandas and matplotlib for dataset analysis.
Master Google Colab workflow by mounting the drive, setting the path, and reading datasets or images. Display images with matplotlib and practice reading data in notebooks.
Learn to import datasets in Google Colab by loading from seaborn's library with seaborn.load_dataset('iris') and reading csv files from Google Colab sample data using pandas.read_csv, without mounting drives.
Unzip and upload the course material folder to Google Drive. Access the three major sections with projects, datasets, and topics like data preprocessing and regression analysis.
Master Python basics in Google Colab, covering arithmetic and logical operations, conditionals, NumPy, Pandas, Seaborn, and Matplotlib to apply Python to ML and DL models.
Master arithmetic and logic operations in Python, including addition, subtraction, multiplication, division, exponent, modulo, and order of operations, using variables and soft coding without libraries.
Explore comparison operators—greater than, less than, equal, not equal, and their true/false results—along with and/or logic and the difference between double equals for comparison and assignment.
Learn to use conditional statements with if, else, and elif, combining comparison and logical expressions, and master colon placement and indentation for correct execution.
Create and manipulate NumPy arrays in Python, including 1d and 2d arrays, and inspect shape, size, and dtype; use max, min, and argmax to find extreme values and their indices.
Learn to generate and reshape NumPy arrays using arange and linspace, and create zeros, ones, and identity matrices. Explore random number generation with NumPy, including rand, randn, and randint.
Master indexing and slicing numpy arrays in 1d and 2d forms. Extract elements, ranges, last items, and last columns, including negative indices and transposed views.
Plot and visualize data using matplotlib.pyplot and numpy, generating x and y with linspace, plotting single and multiple curves, customizing colors, sizes, labels, legends, and titles.
Plot a sine wave with numpy and matplotlib, then set x-axis and y-axis limits and ticks, and customize with grid, style, marker, and legend.
Learn to create and arrange multiple subplots with matplotlib, control layout, and compare continuous and discrete sine waves across 2x2 and 3x2 grids.
Learn to use matplotlib rc parameters to globally control line width, line style, figure size, and label sizes across multiple subplots and sine wave plots.
Learn to create and manipulate lists in Python, and distinguish them from NumPy arrays. Practice indexing, slicing, length, append, pop, and nested lists to form matrices.
Learn to use Python for loops with range, colon, indentation and NumPy/Matplotlib to repeat tasks, print sequences, and filter numbers with if statements, including building lists and summing ten numbers.
Explore nested for loops, where the outer loop controls rows and the inner loop controls columns, illustrated by 3x6 and 3x3 matrices and a 5x5 checkerboard.
Master strings in python by learning creation methods using str and quotes, indexing and slicing, immutability, concatenation, and key methods like upper, split, capitalize, count, and find.
Discover print formatting with strings using print and the format method to fill curly brackets with words or indices. Explore examples showing positional and alphabetical indices to shape sentences.
Explore dictionaries as a data structure by learning how keys index values, create key-value pairs with curly braces, and use methods like keys, values, and items.
Create dictionaries with key-value pairs, using integers, lists, and strings, and practice indexing to retrieve values, including deep access into nested dictionaries.
Create and call functions in Python using def keyword, input parameters, colon, indentation. Use print or return to output results with examples of add, multiply, prime checks, and argument-free functions.
Learn how to define and call Python functions, return values, and assign results to variables, with examples like adding two numbers and checking primes using range and modulo.
Learn to use pandas to create and manipulate tabular data, read files, handle missing values, and modify columns and rows with inplace options.
Learn to access and modify a pandas dataframe using loc and iloc to fetch rows, columns, and intersections, insert and drop rows, and extract slices from a four-column, five-row dataset.
Create a pandas dataframe from a dictionary, index by keys, inspect data with info and describe, identify null values, and replace question marks with NaN for clean analysis.
Learn to clean and preprocess data with pandas: handle null values with tailored strategies, make permanent changes, and read data from a mounted Google Drive in Colab.
Explore Seaborn for data analysis and visualization using the tips dataset, featuring numerical and categorical attributes such as total bill, tip, and size, and learn to plot distributions with distplot.
Explore categorical data with seaborn by plotting count plots and bar plots to reveal how day, sex, and smoker affect party frequency and average tips.
Learn to compute correlations between numerical features such as total bill, tip, and size, visualize results with Seaborn heatmaps and scatter plots, and interpret correlation matrices.
Learn how Python tuples act as immutable sequences, compare them with lists, perform indexing and slicing, concatenate tuples, and find common elements, max, and min values.
Learn how to create classes in Python, define the init method and attributes, and distinguish class attributes from object attributes, with examples like a boy class and a sphere class.
Learn data pre-processing essentials, including normalization, min-max scaling, standardization, handling missing values, encoding categorical features, and feature engineering, all implemented in Python across six projects.
Learn why data pre-processing is essential to handle missing values, noise, uninterpretable data, and features with different magnitudes, ensuring every feature contributes equally to model training.
Explore data preprocessing techniques, including data normalization to map data to 0 to 1 and min-max scaling to transform data to any chosen range, such as -1 to 1.
Implement data normalization and min-max scaling in Python by generating a toy dataset with make_classification, unpacking features and labels, and preparing training and testing splits in Google Colab.
Learn data normalization and min-max scaling in Python, split data with train test split, and apply fit and transform on training data while transforming test data to avoid leakage.
Study data standardization, a preprocessing method for differing units. Subtract the mean and divide by the standard deviation, assuming Gaussian distribution; contrasts with normalization and min-max scaling.
learn data standardization in python with numpy and sklearn, build a three-column dataset, and apply fit on training data and transform on test to achieve mean zero and unit variance.
Master missing value handling in a data pre-processing project using pandas and numpy, including identifying nulls, replacing with mean, median, and standard deviation, and region news substitution.
Learn to handle categorical features by creating dummy variables with pandas get_dummies, drop the first column to reduce redundancy, then prepare X and y, split the data, and apply standardization.
Explore data pre-processing through feature engineering using polynomial features to create additional features from a single input, then apply train/test split and standardization.
Apply a window method to feature engineering in data pre-processing, deriving min, max, mean, and standard deviation from sliding windows to create new features and aligned labels.
Explore supervised machine learning through 19 sections, covering classical methods from regression analysis to boosting and deep learning topics like autoencoders within a supervised framework.
This section introduces regression analysis in supervised learning, covering linear regression variants, least squares and gradient descent, polynomial regression, cross-validation, bias-variance trade-off, ridge, lasso, elastic net regularization, and Python projects.
Trace the origin of regression from the straight line to a linear model, detailing slope, intercept, and how the independent variable X and dependent variable Y relate through training data.
Learn the requirements of a linear regression model: train on data, then predict outcomes for new inputs such as salary from experience or house price from area.
Explore simple linear regression with a single feature, where y depends on x as y = w x plus bias, and learn cases where bias or weight drive model.
Learn multiple linear regression with features X1 and X2, and how weights W1 and W2 and a bias determine each feature's influence, illustrated by salary and a peanut butter-jelly sandwich.
Explore target values and predicted values in linear regression, learn to plot targets, train a regression model, and measure error and accuracy when predictions differ.
Learn how to quantify the difference between target and predicted values by converting it into the mean squared error loss and minimize it with the least squares method in regression.
Minimize the mean square error loss with the least square method to obtain the optimal weights and bias for regression, using X, y, and W matrices.
demonstrate a numerical least squares solution on a two-sample dataset with one feature and salary target, deriving X, Y, W, and obtaining weight 10,000 and zero bias.
Learn to evaluate regression with root mean square error, mean absolute error, and R-squared; calculate errors, compare across data, and interpret model performance.
Implement simple linear regression in Python using Google Colab, load the regression_data dataset, and visualize the linear relationship with a scatter plot.
Learn to implement simple linear regression from scratch with the least squares method and with sklearn, building x and y matrices, adding a bias, and estimating the single feature weight.
Learn to implement simple linear regression with the least squares method, generate test data from training data, and evaluate using root mean square error, mean absolute error, and r-squared.
Generate a 1000-sample, three-feature dataset with make_regression, apply multiple linear regression using sklearn, split with train_test_split, and evaluate with root mean square error, mean absolute error, and r-squared.
Transform random data into a named, three-feature dataset (research, salaries, infrastructure) for multiple linear regression, with expenditure as the target, then visualize feature influence to anticipate regression weights.
Extract features and labels from data frame, convert to numpy arrays, and perform a train-test split to build a multiple linear regression model predicting expenditures from salary, research, and infrastructure.
Use multiple linear regression in Python to predict yearly amount spent using average session length, time on app, time on website, and length of membership from e-commerce customer Kaggle dataset.
Learn gradient descent to minimize mean squared error by iteratively updating weights and biases, overcoming least squares limitations like noninvertible X'X and sample-to-feature concerns.
Apply gradient descent to a three-feature multiple linear regression using make_regression data. Standardize for training and evaluate with RMSE, MAE, and R-squared; compare to least squares.
Learn polynomial regression to fit curves beyond lines, using higher degree polynomials and feature matrices, balancing best fit with overfitting, with Python implementation.
Learn polynomial regression in python with sklearn, transform experience into polynomial features, fit linear regression, and evaluate degrees 1–4 on a salary dataset to optimize performance.
Master cross validation by using five-fold and ten-fold splits to train and test models, compute metrics, and average evaluations to estimate performance on unseen data.
Implement five-fold cross-validation in Python to evaluate a linear regression model, compare it with a regular train-test split, and assess performance using RMSE and MAE on unseen data.
Master the bias-variance trade-off by distinguishing underfit (high bias) and overfit (high variance) models, learning to balance training and test performance to generalize to unseen data.
Explore how regularization uses a lambda term to penalize large weights, uses L1 and L2 norms to improve generalization and stable feature contributions.
Apply ridge regression, or L2 regularization, by adding a squared penalty on weights to the least-squares objective to reduce overfitting in noisy, correlated data, controlled by lambda.
Learn lasso regression, or L1 regularization, which shrinks weights toward zero for sparse models and mitigates multicollinearity via absolute value penalties, with lambda controlling bias and feature selection.
Explore elastic net regularization by combining lasso and ridge penalties, using A and B parameterization and the L1 ratio to balance their contributions.
Implement ridge, lasso, and elastic net regularization on a regression dataset, expand features with polynomial terms up to degree four, standardize data, and compare performance using r-squared, mse, and mae.
Use grid search cross-validation to tune hyperparameters like alpha (lambda), fit intercept, max iterations, and L1 ratio in lasso and elastic net models, selecting the best parameter combinations.
Learn to perform grid search cross-validation in Python to optimize ridge, lasso, and elastic net models using scikit-learn, with practical steps and parameter grids.
Learn the basics of logistic regression for classification, its differences from linear regression, and loss function, confusion matrix, and metrics like accuracy, precision, recall, f1, roc, with six Python projects.
Explore logistic regression as a probabilistic classifier for classification tasks, distinguishing discrete targets from continuous ones, transforming inputs to binary labels, yielding class probabilities, and applying a threshold.
Explore the limitations of regression for classification and why logistic regression ensures probabilities between 0 and 1, addressing misclassifications and the need for a probabilistic model.
Master logistic regression to obtain class probabilities from a tumor size dataset. Learn data preparation, 2d reshaping, model training, and interpreting predict_proba and predict outputs.
Generate a two-feature, two-class dataset with make_classification and train_test_split using random_state 42. Train a logistic regression model, compute class probabilities with predict_proba, and compare them to predictions.
Learn the logistic regression loss function, its log-based form for binary labels, and how to compute gradients to update weights via gradient descent.
Evaluate a logistic regression model using a 2x2 confusion matrix, interpreting true positives and negatives, false positives and negatives, and computing accuracy with type one and type two errors.
Learn how to evaluate classifier performance using accuracy, precision, recall, and F1 score, computed from the confusion matrix, with emphasis on bias handling and harmonic mean.
Explore the receiver operator characteristic curve (ROC) and its area under the curve (AUC) as metrics to evaluate classifiers, linking true positive and false positive rates to model precision.
learn how to evaluate a logistic regression model using confusion matrix, accuracy, precision, recall, f1 score, and a roc curve, with a synthetic dataset and train-test split.
Learn how to evaluate a logistic regression model with cross-validation, using fivefold validation, confusion matrices, and metrics like accuracy, precision, recall, and F1, plus ROC curves.
Apply logistic regression to a multiclass iris dataset, perform train-test split, standardize features, and evaluate with accuracy, precision, recall, F1, confusion matrix, and ROC AUC.
Apply logistic regression to the Titanic dataset. Preprocess by handling missing ages with the mean and dropping rows with missing embarked values to build a binary survival classifier.
Create dummy variables for sex and embarked, drop the first to avoid multicollinearity, then extract features and labels, split data, and standardize for logistic regression.
Train a logistic regression model on the training data, generate class probabilities and predictions for the test set, and evaluate accuracy, confusion matrix, and ROC-AUC on challenging, multicollinear, unbalanced dataset.
Learn to optimize a logistic regression model with grid search cross-validation, exploring parameters like penalty, C, tolerance, and solver, and evaluate with classification reports, confusion matrices, and roc curves.
Explore the k nearest neighbor algorithm for classification, learn its intuition and steps, solve a numerical example, discuss pros and cons, and implement it in Python across four projects.
Learn the intuition of k-nearest neighbors (k-nn) and how majority voting classifies a test point between two classes using nearest neighbors and varying k.
Learn the kNN algorithm by selecting k, computing Euclidean distances to all samples, choosing the k nearest neighbors, and using majority voting to assign the class.
Apply k-nearest neighbors to predict t-shirt size from height and weight using Euclidean distance, selecting the five nearest neighbors and using majority voting to label medium.
Explore implementing k-nearest neighbors on a two-class dataset built with make_blobs, using numpy, pandas, and sklearn, and visualize results with two scatter plots.
Generate a two feature dataset with make_blobs, visualize separation via scatter plots. Apply a k-nearest neighbors classifier with standardized features, achieving 100% accuracy on data and 92.5 on challenging data.
Learn to find the optimal K in k-nearest neighbors via an error rate plot from K=1 to 30 and pick the first minimum, where error rate is 1 minus accuracy.
Learn how to find the optimal k for a k-nearest neighbors classifier using error rate plots and grid search cross-validation, improving accuracy on a three-class dataset.
Implement k-nearest neighbors classification on the wine dataset. Split data, standardize features, apply the k neighbor classifier with the chosen k, and validate with a confusion matrix achieving 100% accuracy.
Apply k-nearest neighbors to the Titanic dataset in Google Colab, with data cleaning, dummy encoding, feature scaling, and model selection via error-rate analysis to achieve about 82% accuracy.
Evaluate the advantages and disadvantages of k-nearest neighbors, including its simple implementation, support for multiple classes, easy data addition, and issues with computation, high-dimensional data, and data standardization.
Explore Bayes theorem and the naive Bayes classifier as generative probabilistic models, compare with discriminative logistic regression, and study conditional probability with practical Python implementations.
Explore the fundamentals of probability, defining random experiments, sample space and sample points, and analyze events with examples like coin tosses, dice rolls, and calculating event probabilities.
Explore conditional probability and Bayes theorem, using joint probability and prior and posterior concepts to update beliefs with examples from rolling dice.
Explore Bayes theorem through a numerical dice example, computing probabilities for doubles with and without the sum constraint, illustrating P(A|B)=1/3.
Explore naive Bayes classification, a probabilistic classifier using Bayes theorem to compute prior and conditional probabilities for classifying a new feature x into class a or class b.
Compare Naive Bayes and logistic regression to explore generative versus discriminative modeling, independence assumptions, and how bias, variance, and multicollinearity affect performance.
Learn to apply Gaussian naive Bayes classifier and compare its performance with logistic regression on a small dataset, using tumor size features and probability predictions.
Compare gaussian naive Bayes and logistic regression on a large, correlated two-feature dataset; logistic regression outperforms naive Bayes with 80% vs 77.5% accuracy.
Explore multiclass classification with a gaussian Naive Bayes classifier, compare it to logistic regression on the Titanic dataset, and analyze how PCA uncorrelated features affect model accuracy.
Introduction
Introduction of the Course
Introduction to Machine Learning and Deep Learning
Introduction to Google Colab
Python Crash Course
Data Preprocessing
Supervised Machine Learning
Regression Analysis
Logistic Regression
K-Nearest Neighbor (KNN)
Bayes Theorem and Naive Bayes Classifier
Support Vector Machine (SVM)
Decision Trees
Random Forest
Boosting Methods in Machine Learning
Introduction to Neural Networks and Deep Learning
Activation Functions
Loss Functions
Back Propagation
Neural Networks for Regression Analysis
Neural Networks for Classification
Dropout Regularization and Batch Normalization
Convolutional Neural Network (CNN)
Recurrent Neural Network (RNN)
Autoencoders
Generative Adversarial Network (GAN)
Unsupervised Machine Learning
K-Means Clustering
Hierarchical Clustering
Density Based Spatial Clustering Of Applications With Noise (DBSCAN)
Gaussian Mixture Model (GMM) Clustering
Principal Component Analysis (PCA)
What you’ll learn
Theory, Maths and Implementation of machine learning and deep learning algorithms.
Regression Analysis.
Classification Models used in classical Machine Learning such as Logistic Regression, KNN, Support Vector Machines, Decision Trees, Random Forest, and Boosting Methods in Machine Learning.
Build Artificial Neural Networks and use them for Regression and Classification Problems.
Using GPU with Deep Learning Models.
Convolutional Neural Networks
Transfer Learning
Recurrent Neural Networks
Time series forecasting and classification.
Autoencoders
Generative Adversarial Networks
Python from scratch
Numpy, Matplotlib, seaborn, Pandas, Pytorch, scikit-learn and other python libraries.
More than 80 projects solved with Machine Learning and Deep Learning models.