Personal learning journey through "Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow (3rd Edition)" by Aurélien Géron
This repository documents my hands-on practice, notes, experiments, and implementations while working through one of the most comprehensive machine learning books available. It serves as both a personal study log and a reference resource for anyone learning practical machine learning with Python.
This repository contains:
- Jupyter Notebooks: Step-by-step implementations of algorithms and concepts
- Personal Notes: Concise explanations and key takeaways from each chapter
- Code Examples: Practical implementations using Scikit-Learn, Keras, and TensorFlow
- Experiments: Additional explorations and variations beyond the book's examples
- Exercises: Solutions to end-of-chapter exercises
The content is organized chapter-by-chapter, following the structure of the book's 3rd edition.
Hands-On-Machine-Learning-with-Scikit-Learn-Keras-and-TensorFlow/
│
├── Chapter 1 - The Machine Learning Landscape/
│ ├── notebooks/
│ ├── notes/
│ └── exercises/
│
├── Chapter 2 - End-to-End Machine Learning Project/
│ ├── notebooks/
│ ├── notes/
│ └── exercises/
│
├── Chapter 3 - Classification/
│ └── [Coming soon]
│
├── Chapter 4 - Training Models/
│ └── [Coming soon]
│
└── ... [Additional chapters]
- The Machine Learning Landscape - Introduction to ML concepts, types of learning systems, and main challenges
- End-to-End Machine Learning Project - Complete workflow from data acquisition to model deployment
- Classification - Binary and multiclass classification, performance metrics
- Training Models - Linear regression, gradient descent, regularization
- Support Vector Machines - SVMs for classification and regression
- Decision Trees - Tree-based models and the CART algorithm
- Ensemble Learning and Random Forests - Voting classifiers, bagging, boosting, stacking
- Dimensionality Reduction - PCA, manifold learning, and other techniques
- Unsupervised Learning Techniques - Clustering, anomaly detection
- Introduction to Artificial Neural Networks with Keras - Building and training neural networks
- Training Deep Neural Networks - Advanced optimization techniques and regularization
- Custom Models and Training with TensorFlow - Building custom models and training loops
- Loading and Preprocessing Data with TensorFlow - Data pipelines and preprocessing
- Deep Computer Vision Using Convolutional Neural Networks - CNNs and image processing
- Processing Sequences Using RNNs and CNNs - Sequence models for time series and NLP
- Natural Language Processing with RNNs and Attention - Advanced NLP techniques
- Autoencoders, GANs, and Diffusion Models - Generative models
- Reinforcement Learning - Q-learning, policy gradients, and deep RL
- Training and Deploying TensorFlow Models at Scale - Production deployment strategies
- Python 3.8 or higher
- Basic understanding of Python programming
- Familiarity with NumPy and Pandas (helpful but not required)
- Jupyter Notebook or JupyterLab
-
Clone the repository
git clone https://github.com/M-F-Tushar/Hands-On-Machine-Learning-with-Scikit-Learn-Keras-and-TensorFlow.git cd Hands-On-Machine-Learning-with-Scikit-Learn-Keras-and-TensorFlow -
Create a virtual environment (recommended)
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install required packages
pip install -r requirements.txt
-
Launch Jupyter Notebook
jupyter notebook
The main libraries used throughout this repository:
- Scikit-Learn: Machine learning algorithms and tools
- TensorFlow: Deep learning framework
- Keras: High-level neural networks API
- NumPy: Numerical computing
- Pandas: Data manipulation and analysis
- Matplotlib: Data visualization
- Seaborn: Statistical data visualization
By working through this repository, you'll learn:
- Fundamentals: Core ML concepts, supervised/unsupervised learning, overfitting/underfitting
- Practical Skills: Data preprocessing, feature engineering, model evaluation
- Classical ML: Linear models, SVMs, decision trees, ensemble methods
- Deep Learning: Neural networks, CNNs, RNNs, transformers
- Advanced Topics: Transfer learning, GANs, reinforcement learning
- Production: Model deployment, scaling, and best practices
- Start with Chapter 1 and progress sequentially
- Read the book chapter first
- Review the notes in this repository
- Run the Jupyter notebooks
- Attempt the exercises independently
- Compare your solutions with those provided
- Use the chapter folders to find specific topics
- Review notes for quick conceptual refreshers
- Refer to code examples for implementation details
- Modify the provided notebooks with different datasets
- Experiment with hyperparameters
- Try implementing variations of the algorithms
- Apply techniques to your own projects
Throughout this repository, we work with various datasets including:
- California Housing: Regression problem for predicting house prices
- MNIST: Handwritten digit classification
- Fashion MNIST: Clothing image classification
- CIFAR-10: Object recognition in images
- IMDB Reviews: Sentiment analysis
- Custom datasets: Various real-world examples
Most datasets are automatically downloaded by the notebooks when needed.
- Book's Official GitHub Repository
- Scikit-Learn Documentation
- TensorFlow Documentation
- Keras Documentation
While this is primarily a personal learning repository, contributions are welcome! If you find errors or have suggestions:
- Fork the repository
- Create a feature branch (
git checkout -b feature/improvement) - Commit your changes (
git commit -am 'Add improvement') - Push to the branch (
git push origin feature/improvement) - Open a Pull Request
- This repository is for educational purposes only
- The code and notes are based on the 3rd edition of the book
- Some implementations may differ from the book's examples as they reflect my personal understanding and experiments
- This repository is not affiliated with O'Reilly Media or the book's author
- Please purchase the book to support the author: Hands-On Machine Learning on O'Reilly
Author: M-F-Tushar
Purpose: Personal learning and knowledge sharing
Status: In Progress (Continuously updated as I progress through the book)
- Aurélien Géron - For writing this exceptional book
- O'Reilly Media - For publishing quality technical content
- The open-source community - For maintaining Scikit-Learn, TensorFlow, and Keras
- Fellow learners who share their knowledge and experiences
If you find this repository helpful or have suggestions:
- ⭐ Star this repository
- 🐛 Report issues via GitHub Issues
- 💬 Start discussions about ML concepts
- 🔀 Fork and create your own learning journey
Happy Learning! 🚀
"The only way to learn machine learning is by doing machine learning"