A hands-on, notebook-driven path through machine learning: from statistics and data handling to feature engineering, classical algorithms, and from-scratch implementations.
- Overview
- Highlights
- Repository Structure
- Learning Tracks
- Algorithms and Techniques Covered
- Tech Stack
- Getting Started
- Suggested Learning Path
- Roadmap
- Contributing
- Acknowledgements
- License
- Connect With Me
This repository is a structured collection of Jupyter notebooks that documents a complete machine-learning learning journey — starting with the statistics and data-handling basics and progressing through feature engineering, regression, classification, clustering, model evaluation, and optimization.
It brings together three complementary learning tracks in one place. Each notebook pairs short explanations with runnable code, visualizations, and the datasets needed to reproduce the results. Several algorithms are also implemented from scratch with NumPy, so the math behind the library calls is visible.
| Notebooks | 59 |
| Datasets included | 40+ CSV / TSV / JSON files |
| Learning tracks | 3 |
| Level | Beginner → Advanced |
- End-to-end coverage — data loading, EDA, preprocessing, feature engineering, modelling, and evaluation.
- From-scratch implementations — multiple linear regression, batch / stochastic / mini-batch gradient descent, ridge regression, and the perceptron trick.
- Visual intuition — animated and 3D gradient-descent visualizations.
- Self-contained — datasets live next to the notebooks that use them; no external downloads needed.
- Production habits —
ColumnTransformerandPipelineworkflows, with side-by-side "with pipeline vs. without pipeline" comparisons.
Complete-Machine-Learning-Algorithm-Beginner-to-Advanced/
├── Machine Learning From W3Schools/
│ ├── machine learning with scikit-learn.ipynb # Statistics → models → evaluation
│ ├── data.csv, data1.csv # Datasets
│ └── test.py
├── Machine Learning From WsCube Tech/
│ ├── Machine Learning Algorithm.ipynb # 9 core algorithms in one notebook
│ └── *.csv # Iris, income, insurance, salaries, ...
├── 100-Days-of-Machine-Learning-CampusX/
│ ├── 15 Working with CSV files/
│ ├── ... # 38 numbered lesson folders
│ ├── 58 Logistic Regression/
│ └── README.md # Detailed lesson-by-lesson index
├── LICENSE
└── README.md
📂 Machine Learning From W3Schools/
A single, progressive notebook that builds up from descriptive statistics to full models.
| Area | Topics |
|---|---|
| Statistics | Mean, median, mode · standard deviation and variance · percentiles |
| Data distributions | Uniform and normal distributions · histograms · scatter plots |
| Regression | Linear regression · polynomial regression · multiple regression · R² · feature scaling |
| Classification | Decision trees · logistic regression · K-nearest neighbours |
| Clustering | K-means · hierarchical (agglomerative) clustering with dendrograms |
| Ensembles | Bootstrap aggregation (bagging) |
| Evaluation | Train/test split · confusion matrix · accuracy, precision, recall, specificity, F-score · AUC–ROC |
| Model selection | Grid search · K-Fold, Stratified K-Fold, Leave-One-Out, Leave-P-Out, Shuffle Split |
| Preprocessing | Categorical data and one-hot (dummy) encoding |
📂 Machine Learning From WsCube Tech/
Nine essential algorithms, each applied to a real dataset.
| # | Algorithm | Type |
|---|---|---|
| 1 | Linear Regression (single and multiple variables) | Regression |
| 2 | Polynomial Regression | Regression |
| 3 | Logistic Regression (binary and multiclass) | Classification |
| 4 | Decision Tree | Classification |
| 5 | Random Forest | Ensemble |
| 6 | Naive Bayes Classifier | Classification |
| 7 | Support Vector Machine (SVM) | Classification |
| 8 | K-Nearest Neighbours (KNN) | Classification |
| 9 | K-Means Clustering | Clustering |
📂 100-Days-of-Machine-Learning-CampusX/ · 57 notebooks across 38 lessons
The deepest track, following the CampusX curriculum day by day. See the track README for links to every lesson.
| Stage | Days | Topics |
|---|---|---|
| Data access and EDA | 15 – 22 | CSV, JSON, and SQL data · understanding your data · univariate, bivariate, and multivariate analysis · Pandas Profiling |
| Feature scaling and encoding | 24 – 27 | Standardization · normalization · ordinal, label, and one-hot encoding |
| Pipelines and transformers | 28 – 32 | ColumnTransformer · ML pipelines · function and power transformers (Box–Cox, Yeo–Johnson) · binning and binarization |
| Feature engineering | 33 – 34, 45 | Mixed variables · date and time features · feature construction and splitting |
| Missing data | 35 – 40 | Complete-case analysis · simple imputation · missing indicators · random-sample imputation · KNN imputer · MICE |
| Outliers | 42 – 44 | Z-score, IQR, and percentile methods |
| Dimensionality reduction | 47 | Principal Component Analysis (PCA), step by step and applied |
| Regression | 48 – 53 | Simple, multiple, and polynomial regression · regression metrics (MAE, MSE, RMSE, R², adjusted R²) |
| Optimization | 51 – 52 | Gradient descent from scratch · batch, stochastic, and mini-batch variants · animations |
| Regularization | 55 – 57 | Ridge (L2) · Lasso (L1) · Elastic Net |
| Classification | 58 | Logistic regression · perceptron trick · sigmoid · gradient descent |
| Category | Covered |
|---|---|
| Regression | Simple Linear · Multiple Linear · Polynomial · Ridge · Lasso · Elastic Net |
| Classification | Logistic Regression · Decision Tree · Naive Bayes · SVM · KNN · Perceptron |
| Ensemble | Random Forest · Bagging |
| Clustering | K-Means · Hierarchical Clustering |
| Dimensionality reduction | PCA |
| Optimization | Batch GD · Stochastic GD · Mini-Batch GD |
| Preprocessing | Scaling · Encoding · Imputation · Outlier handling · Transformations · Binning |
| Evaluation | R² · MAE / MSE / RMSE · Confusion Matrix · Precision / Recall / F-score · AUC–ROC · Cross-validation · Grid Search |
| Purpose | Tools |
|---|---|
| Language | Python 3.9+ |
| Environment | Jupyter Notebook / JupyterLab / VS Code |
| Data handling | NumPy · pandas |
| Machine learning | scikit-learn · SciPy |
| Visualization | Matplotlib · Seaborn |
| Profiling | ydata-profiling (Pandas Profiling) |
- Python 3.9 or newer
- Basic familiarity with Python syntax
-
Clone the repository
git clone https://github.com/Md-Emon-Hasan/Complete-Machine-Learning-Algorithm-Beginner-to-Advanced.git cd Complete-Machine-Learning-Algorithm-Beginner-to-Advanced -
Create and activate a virtual environment (recommended)
python -m venv .venv # Windows .venv\Scripts\activate # macOS / Linux source .venv/bin/activate
-
Install the dependencies
pip install numpy pandas scipy scikit-learn matplotlib seaborn jupyter ydata-profiling
-
Launch Jupyter
jupyter notebook
Open any notebook and run the cells from top to bottom. Datasets are loaded with relative paths, so start each notebook from its own folder.
New to machine learning? Follow the tracks in this order:
- W3Schools track — build the statistical foundation and get a first look at every major concept.
- WsCube Tech track — apply the nine core algorithms to real datasets.
- CampusX track — go deep on data preparation, feature engineering, and the math behind the models, lesson by lesson.
This repository grows as new topics are studied. Planned additions:
- Classification metrics and the remaining logistic-regression lessons
- Decision trees, ensemble learning, bagging, and boosting (AdaBoost, Gradient Boosting, XGBoost)
- SVM, KNN, and Naive Bayes in depth
- Clustering (K-Means, DBSCAN, hierarchical) in depth
- End-to-end projects with deployment
Contributions, corrections, and suggestions are welcome.
- Fork the repository.
- Create a branch:
git checkout -b feature/your-improvement - Commit your changes:
git commit -m "Add your improvement" - Push the branch:
git push origin feature/your-improvement - Open a pull request.
Found a bug or an unclear explanation? Please open an issue.
These notebooks are personal study notes built while following these excellent free resources:
This project is licensed under the Apache License 2.0. See the LICENSE file for details.
- 🌐 Portfolio: emonlabs-ai.hitechparks.com
- 💻 GitHub: Md-Emon-Hasan
- 💼 LinkedIn: Md Emon Hasan
- 🤗 Hugging Face: emonHasan01
- 📧 Email: emon.mlengineer@gmail.com
- 📱 WhatsApp: +8801834363533
If this repository helps you, please consider giving it a ⭐
Made with ❤️ by Md Emon Hasan