Hey everyone! Myself Pathik Viramgama (Pr0fess0r), and I am on a 75-day Kaggle challenge where I will dedicate 300 hours (4 hours per day) to rise as high as possible in the Kaggle rankings. 🚀
This GitHub Repository serves as a structured log of my journey, where I will be implementing machine learning (ML) from scratch, moving from basic concepts to deep learning. It will be regularly updated with Kaggle Notebooks that I create during the challenge.
All datasets used in this challenge are stored in the /Data directory.
| Dataset Name | Description |
|---|---|
banana_quality_dataset.csv |
Dataset related to banana quality classification |
heart_dataset.csv |
Dataset related to heart disease classification |
Salary_dataset.csv |
Dataset used for salary prediction (Linear Regression) |
All ML implementations are in the /Notebooks directory.
| Notebook Name | Description |
|---|---|
n-4-oops-in-python.ipynb |
Object-Oriented Programming (OOP) in Python |
n1-linear-regression-scratch-with-ols.ipynb |
Linear Regression from Scratch using Ordinary Least Squares (OLS) |
n2-linear-regression-scratch-with-gd.ipynb |
Linear Regression from Scratch using Gradient Descent (GD) |
n3-logistic-regression-scratch-binary.ipynb |
Logistic Regression for Binary Classification from Scratch |
n3-logistic-regression-scratch.ipynb |
Logistic Regression from Scratch using Gradient Descent (GD) |
n4-knn-scratch-2-cat-euclidian-distance.ipynb |
K-Nearest Neighbors (KNN) from Scratch using Euclidean Distance for Binary Classification |
n5-naive-bayes-scratch-gaussian.ipynb |
Naive Bayes Classifier from Scratch using Gaussian Distribution |
n6-decision-tree-classifier-scratch-2-cat-gini.ipynb |
Decision Tree Classifier from Scratch for Binary Classification using Gini Impurity |
n7-random-forest-scratch-2-cat-majority.ipynb |
Random Forest Classifier from Scratch for Binary Classification using Majority Voting |
n8-linear-svm-scratch-2-cat.ipynb |
Support Vector Machine (SVM) from Scratch for Binary Classification using Linear Kernel |
n9-k-means-clustering-scratch.ipynb |
K-Means Clustering from Scratch |
- Total Duration: 75 Days
- Total Hours: 300 Hours (4 hours/day)
- Objective: Climb the Kaggle rankings by solving real-world ML problems.
✔️ Core ML Concepts from Scratch
✔️ Mathematical Derivations of Algorithms
✔️ Optimized Implementations
✔️ Moving towards Deep Learning
- Clone the Repository
git clone https://github.com/Pr0fess0rOP/ML-Scratch_Coding.git cd ML-Scratch_Coding
This repository will be progressively updated. Below is the expected difficulty curve:
- Linear Regression (GD, OLS)
- Logistic Regression
- K-Nearest Neighbors (KNN)
- Naive Bayes Classifier
- Support Vector Machines (SVM)
- Decision Trees
- Random Forests
- K-Means Clustering
- Artificial Neural Networks (ANN)
- Convolutional Neural Networks (CNN)
- Recurrent Neural Networks (RNN)
- Stable Diffusion
- Transformers (BERT, LSTMs)
- Audio Classification
I welcome contributions to improve this repository! You can contribute in the following ways:
- Found a bug or error? Open an Issue with details.
- Suggest an improvement or feature request.