Welcome to Machine Learning From Scratch — a comprehensive, beginner-friendly, and professional repository containing classic Machine Learning algorithms implemented in two ways:
✅ From Scratch (Pure Python) — for complete understanding of the math and logic
✅ With Scikit-learn — for production-ready and fast implementation
📌 This project includes only Machine Learning algorithms (no deep learning), with clean code, real datasets, and Jupyter notebooks for practice.
Link:Machine Learning From Scratch
To help students, developers, and AI enthusiasts learn Machine Learning the right way — by implementing core algorithms manually and then applying the same models using Scikit-learn for practical use.
Each folder includes:
- Python code (from scratch)
 - Scikit-learn version
 - Dataset(s)
 - Jupyter notebook(s)
 
- ✅ Simple Linear Regression
 - ✅ Polynomial Linear Regression
 - ✅ Multiple Linear Regression
 - ✅ Lasso Regression
 - ✅ Ridge Regression
 - ✅ Random Forest Regression
 - ✅ XGBoost Regressor (Scikit-learn version only)
 - ✅ Decision Tree Regressor
 - ✅ LightGBM Regressor
 - ✅ CatBoost Regression
 - ✅ ElasticNet Regression
 - ✅ Bayesian Ridge Regression
 - ✅ Gradient Boosting Regression
 - ✅ Support Vector Machine (SVM) Regression
 - ✅ K-Nearest Neighbors (KNN) Regression
 - ✅ Huber Regression
 - ✅ Orthogonal Matching Pursuit (OMP)
 - ✅ Theil-Sen Regression
 - ✅ Quantile Regression
 - ✅ Tweedie Regression
 - ✅ Principal Component Regression (PCR)
 - ✅ Gamma Regression
 - ✅ AdaBoost Regression
 - ✅ Stepwise Regression
- i) Forward Stepwise
 - ii) Backward Stepwise
 
 
- ✅ Logistic Regression
 - ✅ Random Forest Classification
 - ✅ Decision Tree Classification
 - ✅ LightGBM Classification
 - ✅ K-Nearest Neighbors Classification (KNN)
 - ✅ Support Vector Machine Classification (SVM)
 - ✅ Gaussian Naive Bayes Classification
 - ✅ Bernoulli Naive Bayes Classification
 - ✅ Multinomial Naive Bayes Classification
 - ✅ AdaBoost Classification
 - ✅ CatBoost Classification
 - ✅ XGBoost Classification
 - ✅ Gradient Boosting Classification
 - ✅ Extra Tree Classification
 - ✅ Linear Discriminant Analysis (LDA)
 
- ✅ K-Means Clustering
 - ✅ Hierarchical Clustering
 - ✅ DBSCAN
 - ✅ PCA (Principal Component Analysis)
 - ✅ Apriori Algorithm (Association Rule Mining)
 - ✅ Frequent Pattern Growth (FP-Growth)
 
- Python 3.x
 - NumPy, Pandas, Matplotlib, Seaborn
 - Scikit-learn (for sklearn versions only)
 
Install dependencies:
pip install numpy pandas matplotlib seaborn scikit-learnThis repository is perfect for:
- Students learning ML theory and code
 - Preparing for interviews and exams
 - Building data science portfolios
 - Training models with real datasets
 
Zohaib Sattar
📧 Email: zabizubi86@gmail.com
🔗 LinkedIn: Zohaib Sattar
If you find this project helpful, please ⭐️ star the repo and share it with your network. It motivates further open-source contributions!