This repository is a beginner-friendly path for learning machine learning with Python. It is organized like a clean tutorial repo: each numbered folder teaches one topic with a self-contained Jupyter notebook, small datasets where useful, and practice exercises.
Start from Python basics, move into the data stack, then learn supervised learning, unsupervised learning, model evaluation, tuning, saving models, and complete projects.
01. Python For ML02. NumPy03. Pandas04. Matplotlib And Seaborn05. Data Cleaning06. Exploratory Data Analysis07. Feature Engineering08. Train Test Split09. Linear Regression10. Multiple Linear Regression11. Polynomial Regression12. Logistic Regression13. Decision Tree14. Random Forest15. Support Vector Machine16. K-Nearest Neighbors17. Naive Bayes18. K-Means Clustering19. Hierarchical Clustering20. Principal Component Analysis21. Regularization22. Cross Validation23. Hyperparameter Tuning24. Model Evaluation Metrics25. Imbalanced Data Handling26. Ensemble Learning27. Bagging And Boosting28. Gradient Boosting29. XGBoost30. Model Saving And Loading31. End-To-End ML Projects
- Create and activate a virtual environment.
- Install the requirements:
pip install -r requirements.txt- Start Jupyter:
jupyter notebook- Open the folders in order and run each notebook from top to bottom.
Follow the numbered folders from 01. Python For ML through 31. End-To-End ML Projects. The order is intentional:
01to08: Python, data handling, visualization, preprocessing, and splitting data.09to17: core supervised learning algorithms.18to20: unsupervised learning and dimensionality reduction.21to24: regularization, validation, tuning, and metrics.25to29: imbalanced data and ensemble methods.30to31: saving models and building complete ML workflows.
Most notebooks follow this flow:
- Title and objective
- Concept explanation
- Imports
- Dataset loading
- Exploration
- Cleaning or preprocessing
- Modeling when relevant
- Evaluation
- Visualization where useful
Try This Yourselfpractice section
- Run cells in order.
- Read the markdown before changing code.
- Keep
random_state = 42while learning so your results are reproducible. - If a notebook has a
datasetsfolder, the data for that topic is already included locally.