A comprehensive, hands-on machine learning course from fundamentals to production deployment.
Master Python, NumPy, Pandas, Scikit-learn, Deep Learning, NLP, and model deployment with real-world projects.
- About
- Learning Outcomes
- Prerequisites
- Installation
- Repository Structure
- Course Content
- Interactive Notebooks
- Learning Paths
- Quick Start Guide by Goal
- How to Use This Repository
- Datasets
- Projects
- Example Commands
- Troubleshooting
- Contributing
- License
- Acknowledgments
- Contact
Machine Learning Mastery (MLM-101) is a complete educational program designed to take learners from absolute beginners to proficient machine learning practitioners. This repository contains all course materials including:
- π 85+ Lecture Materials covering ML theory, Python, NumPy, Pandas, Scikit-learn, Deep Learning, NLP, and Deployment
- π» Hands-on Notebooks with code examples and interactive labs
- π Real-World Projects including Sales Forecasting, Fraud Detection, and Course Recommendation systems
- π Deployment Guides for Streamlit, FastAPI, Gradio, and Docker
- π Datasets for practical exercises
Course Website: https://flowdiary.ai/course/MLM-101
- β 12 New Foundation Notebooks covering Python, NumPy, Pandas, Matplotlib, and Scikit-Learn
- β 100% Coverage for all foundation topics (Lectures 7-46)
- β Comprehensive Learning Paths for beginners to advanced learners
- β 35+ Hands-on Notebooks with ML examples and practice exercises
- β Complete Project Suite with deployment examples
By completing this course, you will be able to:
β
Understand fundamental ML concepts (supervised, unsupervised, deep learning)
β
Master Python programming for data science and ML
β
Manipulate and analyze data using NumPy and Pandas
β
Visualize data effectively with Matplotlib
β
Build, train, and evaluate ML models with Scikit-learn
β
Develop deep learning models (CNNs, FFNNs) with Keras/TensorFlow
β
Implement NLP solutions including sentiment analysis and NER
β
Build RAG (Retrieval-Augmented Generation) systems with LangChain
β
Deploy ML models to production using Streamlit, FastAPI, and Docker
β
Apply ML to real-world problems through guided projects
- Basic programming concepts (variables, loops, functions)
- High school level mathematics (algebra, basic statistics)
- Familiarity with command-line interfaces (recommended)
- Python 3.8 or higher (Download Python)
- Jupyter Notebook or JupyterLab (or VS Code with Jupyter extension)
- Git (Download Git)
- Text Editor/IDE: VS Code, PyCharm, or Jupyter Notebook
- 8GB+ RAM recommended for deep learning notebooks
- Docker for deployment modules (Download Docker)
- Anaconda/Miniconda for environment management (Download Anaconda)
-
Clone the repository:
git clone https://github.com/flowdiary/MLM-101.git cd MLM-101 -
Install dependencies:
pip install -r requirements.txt
-
Launch Jupyter Notebook:
jupyter notebook
-
Open a notebook and start learning!
Recommended for isolating project dependencies.
# Navigate to project directory
cd MLM-101
# Create virtual environment
python3 -m venv venv
# Activate virtual environment
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Launch Jupyter
jupyter notebook# Navigate to project directory
cd MLM-101
# Create virtual environment
python -m venv venv
# Activate virtual environment
venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Launch Jupyter
jupyter notebookTo deactivate:
deactivateRecommended for data science workflows.
# Create conda environment
conda create -n mlm101 python=3.10 -y
# Activate environment
conda activate mlm101
# Install dependencies
pip install -r requirements.txt
# Or use conda for main packages
conda install numpy pandas matplotlib scikit-learn jupyter -y
pip install streamlit tensorflow langchain
# Launch Jupyter
jupyter notebookTo deactivate:
conda deactivateMLM-101/
βββ docs/ # Course handouts, slides, and guides
β βββ handouts/ # PDF lecture materials
β βββ guides/ # Installation & troubleshooting guides
β
βββ notebooks/ # Jupyter notebooks organized by topic
β βββ 01_basics/ # ML fundamentals
β βββ 02_deep_learning/ # Neural networks, CNNs
β βββ 03_nlp/ # NLP and text processing
β βββ 04_rag/ # RAG systems
β βββ 05_deployment/ # Model deployment
β
βββ projects/ # Real-world ML projects
β βββ 01_sales_forecasting/
β βββ 02_fraud_detection/
β βββ 03_course_recommendation/
β
βββ scripts/ # Python scripts (converted notebooks)
β βββ deployment/
β βββ data/
β
βββ apps/ # Deployment applications
β βββ fastapi_app/ # REST API
β βββ gradio_app/ # RAG UI
β βββ streamlit_app/ # Interactive frontend
β
βββ data/ # Dataset storage (see data/README.md)
βββ models/ # Saved model storage
βββ docker/ # Docker configurations
βββ tests/ # Unit tests
β
βββ requirements.txt # Python dependencies
βββ LICENSE # Apache 2.0 License
βββ README.md # This file
Introduction to ML, AI vs ML vs DL, Neural Networks, Algorithm Types, ML System Building
Variables, Data Types, Control Flow, Loops, Data Structures (Lists, Tuples, Sets, Dicts), Functions, OOP, Modules
Arrays, Mathematical Operations, Matrices, Linear Algebra, Random & Probability
DataFrames, CSV/JSON I/O, Data Cleaning, Engineering, Analysis
Plots, Customization, Sales Visualization, Exporting
Datasets, Model Training, Preprocessing, Encoding, Scaling, Algorithms (Regression, Classification), Evaluation, Ensembles, Hyperparameter Tuning
Feedforward Neural Networks (FFNN), Backpropagation, Activation Functions
Text Preprocessing, Sentiment Analysis, Named Entity Recognition (NER), Sequence Models
CNN Architecture, Padding, Pooling, Image Classification, Transfer Learning (ResNet50, VGG16)
RAG Systems, LangChain, Pinecone, ChromaDB
Model Serialization, FastAPI, Streamlit, Docker, Cloud Hosting
Total: 85 Lectures
All notebooks are production-ready with executable code, ML examples, and practice exercises.
Python Programming Fundamentals:
- π
python_basics.ipynb- Variables, data types, operators, conditionals - π
python_control_flow.ipynb- Loops, iterations, list comprehensions - π
python_data_structures.ipynb- Lists, tuples, sets, dictionaries - π
python_functions_oop.ipynb- Functions, lambda, classes, inheritance
NumPy for Numerical Computing: 5. π’ numpy_arrays_basics.ipynb - Arrays, operations, indexing, broadcasting 6. π’ numpy_linear_algebra.ipynb - Matrix operations, eigenvalues, PCA
Pandas for Data Manipulation: 7. π pandas_dataframes_basics.ipynb - DataFrames, Series, reading data 8. π pandas_data_cleaning.ipynb - Missing values, duplicates, outliers 9. π pandas_data_analysis.ipynb - GroupBy, pivot tables, merging
Matplotlib for Visualization: 10. π matplotlib_plotting_basics.ipynb - Line, scatter, bar, histograms 11. π matplotlib_customization.ipynb - Colors, labels, annotations, styles
Scikit-Learn Preprocessing: 12. π§ sklearn_preprocessing.ipynb - Scaling, encoding, pipelines, train/test split
ML Evaluation & Tuning: 13. π accuracy_metrics.ipynb - Metrics, confusion matrix, ROC curves 14. βοΈ hyperparameter_tuning.ipynb - Grid search, random search, cross-validation
- π§
ffnn_classification.ipynb- Feedforward neural networks for classification - π§
deep_learning_lectures.ipynb- Deep learning fundamentals - πΌοΈ
cnn_image_classification.ipynb- CNN architecture and image classification - π
transfer_learning_resnet50.ipynb- Transfer learning with ResNet50 - π
transfer_learning_vgg16.ipynb- Transfer learning with VGG16
- π
nlp_introduction.ipynb- NLP fundamentals and concepts - π€
nlp_preprocessing.ipynb- Tokenization, stemming, lemmatization - π¬
sentiment_analysis_scikit.ipynb- Sentiment classification with Scikit-learn - π·οΈ
named_entity_recognition.ipynb- NER with spaCy/NLTK - π
sequence_models_nlp.ipynb- RNNs, LSTMs for text - π
text_representation_techniques.ipynb- Bag-of-words, TF-IDF, embeddings
- π€
rag_langchain_book_pdf.ipynb- RAG with PDF documents - ποΈ
rag_langchain_pinecone_chromadb.ipynb- Vector databases integration
- πΎ
01_model_serialization.ipynb- Pickle, joblib, model saving - π
02_serving_fastapi.ipynb- REST API with FastAPI - π¨
03_rag_langchain_gradio.ipynb- RAG UI with Gradio - π³
04_docker_and_containerization.ipynb- Docker for ML apps - β‘
05_real_time_inference.ipynb- Real-time predictions - π―
06_hands_on_lab_deploy_sentiment_or_cnn.ipynb- Deployment lab
Week 1-2: Python & NumPy Foundations
python_basics.ipynb
β python_control_flow.ipynb
β python_data_structures.ipynb
β python_functions_oop.ipynb
β numpy_arrays_basics.ipynb
β numpy_linear_algebra.ipynb
Week 3: Data Manipulation
pandas_dataframes_basics.ipynb
β pandas_data_cleaning.ipynb
β pandas_data_analysis.ipynb
Week 4: Data Visualization
matplotlib_plotting_basics.ipynb
β matplotlib_customization.ipynb
Week 5-6: First ML Project
sklearn_preprocessing.ipynb
β accuracy_metrics.ipynb
β projects/01_sales_forecasting/
Prerequisites: Complete Beginner Path
Week 1-2: Advanced Scikit-Learn
hyperparameter_tuning.ipynb
β Build classification models
β projects/02_fraud_detection/
Week 3-4: Deep Learning Basics
deep_learning_lectures.ipynb
β ffnn_classification.ipynb
β cnn_image_classification.ipynb
Week 5-6: Transfer Learning
transfer_learning_resnet50.ipynb
β transfer_learning_vgg16.ipynb
β Custom image classification project
Week 7-8: NLP Fundamentals
nlp_introduction.ipynb
β nlp_preprocessing.ipynb
β sentiment_analysis_scikit.ipynb
β named_entity_recognition.ipynb
Prerequisites: Complete Intermediate Path
Week 1-2: Advanced NLP
text_representation_techniques.ipynb
β sequence_models_nlp.ipynb
β Build custom NLP pipeline
Week 3-4: RAG Systems
rag_langchain_book_pdf.ipynb
β rag_langchain_pinecone_chromadb.ipynb
β projects/03_course_recommendation/
Week 5-6: Model Deployment
01_model_serialization.ipynb
β 02_serving_fastapi.ipynb
β 03_rag_langchain_gradio.ipynb
β 04_docker_and_containerization.ipynb
Week 7-8: Production ML
05_real_time_inference.ipynb
β 06_hands_on_lab_deploy_sentiment_or_cnn.ipynb
β Deploy your own ML app
Focus on completing all three major projects with supporting notebooks:
Weeks 1-4: Sales Forecasting
- Foundation notebooks (Python, NumPy, Pandas, Matplotlib)
- Scikit-learn preprocessing
- Complete
projects/01_sales_forecasting/ - Deploy with Streamlit
Weeks 5-8: Fraud Detection
- Deep learning notebooks
- Imbalanced data handling
- Complete
projects/02_fraud_detection/ - Create FastAPI endpoint
Weeks 9-12: Course Recommendation
- NLP notebooks
- RAG system setup
- Complete
projects/03_course_recommendation/ - Full stack deployment with Docker
Start here:
python_basics.ipynbpython_control_flow.ipynbpython_data_structures.ipynbpython_functions_oop.ipynb
Prerequisites: Python basics
Start here:
numpy_arrays_basics.ipynbpandas_dataframes_basics.ipynbpandas_data_cleaning.ipynbpandas_data_analysis.ipynbmatplotlib_plotting_basics.ipynb
Prerequisites: Python + Data analysis
Start here:
sklearn_preprocessing.ipynbaccuracy_metrics.ipynbhyperparameter_tuning.ipynbprojects/01_sales_forecasting/
Prerequisites: Python + ML basics
Start here:
deep_learning_lectures.ipynbcnn_image_classification.ipynbtransfer_learning_resnet50.ipynbtransfer_learning_vgg16.ipynb
Prerequisites: Python + ML basics
Start here:
nlp_introduction.ipynbnlp_preprocessing.ipynbsentiment_analysis_scikit.ipynbnamed_entity_recognition.ipynbtext_representation_techniques.ipynb
Prerequisites: ML models built
Start here:
01_model_serialization.ipynb02_serving_fastapi.ipynb03_rag_langchain_gradio.ipynb04_docker_and_containerization.ipynb
# Activate your environment (venv or conda)
source venv/bin/activate # or: conda activate mlm101
# Navigate to notebooks directory
cd notebooks
# Launch Jupyter
jupyter notebook
# Or use JupyterLab
jupyter labTip: Notebooks are organized by topic. Start with 01_basics/ if you're new to ML.
Each notebook includes:
- π Learning Objectives - What you'll learn
- π» Executable Code - Run cells to see results
- π― ML Examples - Real-world use cases
- βοΈ Practice Exercises - Test your knowledge
- π Solutions - Complete exercise solutions
- π Next Steps - Suggested follow-up notebooks
How to navigate:
# In Jupyter Notebook/Lab:
# - Shift + Enter: Run cell and move to next
# - Ctrl/Cmd + Enter: Run cell
# - B: Create new cell below
# - A: Create new cell above
# - M: Convert to Markdown
# - Y: Convert to CodeRecommended workflow:
- Read the learning objectives
- Run each code cell in order
- Modify examples to experiment
- Complete practice exercises
- Check solutions
- Move to the next notebook in the learning path
Each project has its own directory with a README, code, and data.
Example: Sales Forecasting Project
# Navigate to project
cd projects/01_sales_forecasting
# Install project-specific dependencies (if any)
pip install -r requirements.txt
# Run the training script
python sales_forecasting.py
# Or run the Streamlit app
streamlit run sales_app.pyFastAPI Example:
cd apps/fastapi_app
pip install -r requirements.txt
uvicorn app:app --reload
# Visit: http://127.0.0.1:8000/docsStreamlit Example:
cd apps/streamlit_app
pip install -r requirements.txt
streamlit run app.pyGradio Example:
cd apps/gradio_app
pip install -r requirements.txt
python app.pyTrack your progress through the course:
Foundation (14 notebooks) - Est. 20-30 hours:
- Python Basics (4 notebooks)
- NumPy (2 notebooks)
- Pandas (3 notebooks)
- Matplotlib (2 notebooks)
- Scikit-Learn Preprocessing (1 notebook)
- ML Metrics & Tuning (2 notebooks)
Deep Learning (5 notebooks) - Est. 10-15 hours:
- FFNN & Deep Learning Fundamentals
- CNN Image Classification
- Transfer Learning (ResNet50, VGG16)
NLP (6 notebooks) - Est. 12-18 hours:
- NLP Introduction & Preprocessing
- Sentiment Analysis
- Named Entity Recognition
- Text Representation & Sequence Models
Advanced Topics (8 notebooks) - Est. 12-15 hours:
- RAG Systems (2 notebooks)
- Model Deployment (6 notebooks)
Projects (3 projects) - Est. 20-30 hours:
- Sales Forecasting
- Fraud Detection
- Course Recommendation
Total Estimated Time: 70-110 hours (self-paced)
All datasets are located in project-specific data/ folders. Some datasets are included; others must be downloaded.
- Sales Data (
projects/01_sales_forecasting/data/sales_data.csv) - Fraud Data (
projects/02_fraud_detection/data/fraud_data.csv) - Course Data (
projects/03_course_recommendation/data/course_data.csv)
For large datasets (e.g., ImageNet, COCO), see data/README.md for download instructions.
Example Download Script:
cd data
python download_data.pyPredict future sales using Decision Tree Regressor.
Techniques: Regression, OneHotEncoding, Model Evaluation (RΒ², MSE)
Detect fraudulent credit card transactions.
Techniques: Classification, Imbalanced Data Handling, Precision-Recall
Recommend courses based on user goals and hobbies.
Techniques: Decision Trees, Categorical Encoding, Multi-class Classification
# Clone repository
git clone https://github.com/flowdiary/MLM-101.git
cd MLM-101
# Setup virtual environment
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run Jupyter Notebook
jupyter notebook
# Run a project script
cd projects/01_sales_forecasting
python sales_forecasting.py
# Run Streamlit app
cd projects/01_sales_forecasting
streamlit run sales_app.py
# Run FastAPI app
cd apps/fastapi_app
uvicorn app:app --reload
# Run tests
pytest tests/
# Docker deployment
cd docker
docker-compose up --build1. ModuleNotFoundError: No module named 'xyz'
# Ensure you're in the correct environment
source venv/bin/activate # or: conda activate mlm101
# Install missing package
pip install xyz2. Jupyter Kernel Not Found
# Install IPython kernel
python -m ipykernel install --user --name=mlm1013. Permission Denied (macOS/Linux)
# Use pip with --user flag
pip install --user -r requirements.txt4. CUDA/GPU Issues (Deep Learning)
# Verify TensorFlow GPU installation
python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
# Install CPU-only version if no GPU
pip install tensorflow-cpu5. Port Already in Use (Streamlit/FastAPI)
# Change port for Streamlit
streamlit run app.py --server.port 8502
# Change port for FastAPI
uvicorn app:app --port 8001- Check
docs/guides/troubleshooting.mdfor detailed solutions - Open an issue: GitHub Issues
- Contact instructors: Flowdiary Support
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature) - Commit your changes (
git commit -m 'Add new feature') - Push to the branch (
git push origin feature/your-feature) - Open a Pull Request
- π Bug fixes
- π Documentation improvements
- π§ͺ New project examples
- π Translations
- π Additional datasets
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
You are free to:
- β Use commercially
- β Modify
- β Distribute
- β Use for private purposes
Under the conditions:
- βΉοΈ Include license and copyright notice
- βΉοΈ State changes made to the code
Course Instructors:
- Muhammad Auwal Ahmad - Co-founder, Flowdiary
- Abdullahi Ahmad - MLM Tutor, Flowdiary
Contributors:
- All students and community contributors
Special Thanks:
- Scikit-learn, TensorFlow, and PyTorch communities
- Open-source library maintainers
- Website: https://flowdiary.ai
- Course Page: https://flowdiary.ai/course/MLM-101
- GitHub: https://github.com/flowdiary/MLM-101
- Email: hello@flowdiary.ai