This repository is a practical collection of machine learning notebooks focused on core concepts and commonly used algorithms. It is designed for learning, experimentation, and quick reference while working through supervised and unsupervised learning techniques.
The project is organized into a few key sections:
Supervised/— notebooks covering prediction and classification algorithmsunsupervised/— notebooks covering clustering, dimensionality reduction, and pattern discoverydatasets/— datasets used for experiments and exercisesutils/— helper scripts or utilities used across the notebooks
- Linear Regression
- Logistic Regression
- Decision Trees
- Random Forest
- Support Vector Machines (SVM)
- K-Nearest Neighbors (KNN)
- K-Means Clustering
- DBSCAN
- Principal Component Analysis (PCA)
- Naive Bayes (included in the unsupervised folder as part of the exploration set)
ML/fundamentals/
├── README.md
├── datasets/
├── Supervised/
│ ├── decision_tree.ipynb
│ ├── KNN.ipynb
│ ├── linear regression prep.ipynb
│ ├── LogisticRegression.ipynb
│ ├── Random Forest.ipynb
│ ├── README.md
│ └── SVM.ipynb
├── unsupervised/
│ ├── DBSCAN.ipynb
│ ├── Kmeans.ipynb
│ ├── naive_bayes.ipynb
│ └── PCA.ipynb
├── utils/
└── ...
Make sure you have Python installed, preferably version 3.9 or newer.
pip install jupyter numpy pandas matplotlib seaborn scikit-learnIf you want to use the notebooks in a local environment, launch Jupyter with:
jupyter notebookThen open the notebooks from the Supervised/ or unsupervised/ directories.
- Start with regression and classification basics
- Explore decision trees and random forests
- Move into SVM and KNN
- Learn clustering with K-Means and DBSCAN
- Study PCA for dimensionality reduction
- Practice with datasets and compare model performance
Each notebook usually includes:
- data loading
- preprocessing and cleaning
- model training
- evaluation metrics
- visualization of results
- interpretation of findings
These notebooks document my implementations of fundamental machine learning algorithms from first principles, with a focus on understanding the underlying mathematics and mechanics rather than relying on high-level libraries. While they are currently educational implementations and not intended to be production-grade, I plan to extend and refine them into a reusable open-source library, with the eventual goal of publishing it on PyPI.
This project is a beginner-friendly ML learning notebook collection built to explore the core ideas behind many common machine learning algorithms.