Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🚀 75 Days Kaggle Challenge – ML from Scratch

📌 Introduction

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.


📚 Table of Contents

1️⃣ Datasets

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)

2️⃣ Notebooks

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

🔥 Goals & Progress

Challenge Breakdown

  • Total Duration: 75 Days
  • Total Hours: 300 Hours (4 hours/day)
  • Objective: Climb the Kaggle rankings by solving real-world ML problems.

📌 What This Repository Covers

✔️ Core ML Concepts from Scratch
✔️ Mathematical Derivations of Algorithms
✔️ Optimized Implementations
✔️ Moving towards Deep Learning


📌 How to Use This Repository

  1. Clone the Repository
    git clone https://github.com/Pr0fess0rOP/ML-Scratch_Coding.git
    cd ML-Scratch_Coding

📊 Roadmap

This repository will be progressively updated. Below is the expected difficulty curve:

📌 Phase 1 - Basics

  • Linear Regression (GD, OLS)
  • Logistic Regression
  • K-Nearest Neighbors (KNN)
  • Naive Bayes Classifier

📌 Phase 2 - Advanced ML

  • Support Vector Machines (SVM)
  • Decision Trees
  • Random Forests
  • K-Means Clustering

📌 Phase 3 - Deep Learning

  • Artificial Neural Networks (ANN)
  • Convolutional Neural Networks (CNN)
  • Recurrent Neural Networks (RNN)

📌 Phase 4 - State of the Art

  • Stable Diffusion
  • Transformers (BERT, LSTMs)
  • Audio Classification

🤝 Contributions

I welcome contributions to improve this repository! You can contribute in the following ways:


🔹 Report Issues (Not functional)

  • Found a bug or error? Open an Issue with details.
  • Suggest an improvement or feature request.

About

I am creating a series of notebooks where I recreate the Algorithms used in machine learning Algos with only 3 libraries. (Numpy, Pandas and Matplotlib)

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages