A comprehensive machine learning portfolio containing foundational exercises, practical projects, and utilities for learning and implementing ML algorithms and models.
This repository is organized into three main sections:
- Exercises: Foundational ML concepts with interactive Jupyter notebooks
- Projects: Real-world ML applications and case studies
- Common: Shared utilities and helper functions
The exercises/foundation/ directory contains 9 progressively complex Jupyter notebooks covering fundamental machine learning concepts:
| # | Notebook | Topics |
|---|---|---|
| 1 | 1.0_basic.ipynb | ML basics and fundamentals |
| 2 | 2.0_linear_regression_&_svm.ipynb | Linear Regression, Support Vector Machines |
| 3 | 3.0_generalization_&_evaluation_cm.ipynb | Generalization, Evaluation Metrics, Confusion Matrix |
| 4 | 4.0_neural_network_basic.ipynb | Neural Network Fundamentals |
| 5 | 5.0_dimensionality_reduction_PCA.ipynb | Dimensionality Reduction, PCA |
| 6 | 6.0_kernel_methods.ipynb | Kernel Methods |
| 7 | 7.0_mixture_model_&_probability.ipynb | Mixture Models, Probability Theory |
| 8 | 8.0_information_theory_decision_tree.ipynb | Information Theory, Decision Trees |
| 9 | 9.0_generative_model_basic.ipynb | Generative Models |
Location: projects/movie_review_sentiment_classifier-master/
A production-ready sentiment analysis project using fine-tuned transformer models.
Key Files:
- README.md - Project documentation
- setup.py - Package configuration
- src/api/main.py - FastAPI application
- src/ml/model.py - Model training
- src/ml/data.py - Data handling
- notebooks/movie_review_sentiment_classifier.ipynb - Main notebook
Features:
- Fine-tuned transformer models for sentiment classification
- REST API with FastAPI
- Comprehensive logging
- Data preprocessing pipeline
- Model training and evaluation
See the project README for detailed setup and usage instructions.
Each project has its own setup instructions. See the individual project README:
cd projects/movie_review_sentiment_classifier-master/
pip install -r requirements.txt
pip install -e .- Exercises: exercises/foundation/
- Projects: projects/
- Sentiment Classifier Project: projects/movie_review_sentiment_classifier-master/
MachineLearningPortfolio/
├── README.md # This file
├── .gitignore # Git ignore patterns for entire portfolio
├── requirements.txt # Python dependencies
├── common/ # Shared utilities (currently empty)
├── exercises/ # Learning materials & exercises
│ └── foundation/ # Foundational ML concepts
│ ├── 1.0_basic.ipynb # Basic concepts
│ ├── 2.0_linear_regression_&_svm.ipynb
│ ├── 3.0_generalization_&_evaluation_cm.ipynb
│ ├── 4.0_neural_network_basic.ipynb
│ ├── 5.0_dimensionality_reduction_PCA.ipynb
│ ├── 6.0_kernel_methods.ipynb
│ ├── 7.0_mixture_model_&_probability.ipynb
│ ├── 8.0_information_theory_decision_tree.ipynb
│ └── 9.0_generative_model_basic.ipynb
└── projects/ # Real-world ML projects
└── movie_review_sentiment_classifier-master/
├── README.md # Project-specific documentation
├── .gitignore # Project-specific git patterns
├── setup.py # Package setup configuration
├── NOTE.MD # Deployment notes
├── requirements.txt # Project dependencies
├── src/ # Source code
│ ├── api/ # FastAPI application
│ │ ├── main.py # FastAPI app setup
│ │ ├── logs/ # API logs
│ │ └── routes/
│ │ └── predict.py # Prediction endpoints
│ ├── ml/ # Machine learning module
│ │ ├── __init__.py
│ │ ├── model.py # Model training & inference
│ │ ├── data.py # Data loading & preprocessing
│ │ └── utils.py # Utility functions
│ └── logging_utils/ # Logging configuration
│ ├── __init__.py
│ └── logger.py # Logger setup
├── notebooks/ # Jupyter notebooks
│ ├── 01_exploration.ipynb
│ ├── movie_review_sentiment_classifier.ipynb
│ └── logs/ # Notebook logs
└── data/ # Data storage
├── raw/ # Raw datasets
└── processed/ # Processed datasets
- Detailed deployment and implementation notes for the sentiment classifier are available in projects/movie_review_sentiment_classifier-master/NOTE.MD
- Each project directory has its own
.gitignorefor project-specific patterns - The root .gitignore covers common patterns for the entire portfolio