This repository showcases an Automated Machine Learning (AutoML) Pipeline for a classification task (predicting "Survived"). It is designed to demonstrate end-to-end data science workflow automation, advanced ML techniques, and proficiency with key tools and libraries.
-
🔄 Data Cleaning
- Missing value imputation (median/mode)
- Categorical encoding (One-Hot Encoding)
- Feature scaling (StandardScaler)
-
⚡ Feature Engineering
- Custom feature transformations
- Automated feature synthesis using Featuretools (Deep Feature Synthesis)
-
📊 Rich Visualizations
- Pre-training: Correlation heatmaps, target distribution, pairplots
- Post-training: Confusion matrix, classification report, ROC curve
- Visualizations are saved as
.pngfiles in thevisualizations/directory
-
🎯 Hyperparameter Tuning
- Optuna for hyperparameter optimization
- Implements K-Fold Cross-Validation and prunes underperforming trials for efficiency
-
🤖 Model Selection & Training
- Multiple ML models (Logistic Regression, Random Forest, XGBoost, SVM, etc.)
- Selects the best model based on validation performance
-
📋 Experiment Tracking with MLflow
- Logs model parameters, metrics (Accuracy, F1-Score, ROC-AUC), and artifacts
- MLflow UI enables visualization and comparison of multiple experiment runs
-
Install dependencies:
pip install -r requirements.txt
Or individually:
pip install numpy pandas scikit-learn featuretools optuna mlflow seaborn matplotlib xgboost
-
Place your raw data in
data/raw/data.csv- Ensure the dataset contains a column
Survived(or a final column that will be renamed toSurvived). For your data just change name of your target withSurvived.
- Ensure the dataset contains a column
-
Run the main script:
python main.py
-
Explore the results:
- 📁 Visualizations in the
visualizations/folder. - 📊 MLflow Tracking:
Open http://localhost:5000 to view and compare experiment runs.
mlflow ui --backend-store-uri sqlite:///mlflow.db
- 📁 Visualizations in the
- Validation Accuracy: ~100%
- Test Accuracy: ~90%
- F1-Score and ROC-AUC metrics are also tracked in MLflow.
My data was pretty limited and seperable so high scores are expected.
- Every experiment run logs model parameters, metrics (Accuracy, F1-Score), and artifacts.
- All runs are stored in an SQLite MLflow database (
mlflow.db). - Start the MLflow UI:
Explore experiments at http://localhost:5000.
mlflow ui --backend-store-uri sqlite:///mlflow.db