Loading portfolio
Built an AI-assisted cocktail design system that predicts multi-label flavor profiles and uses evolutionary search to optimize recipes under real-world constraints. I trained taste classifiers on 4,500+ recipes, wired the models into a GA fitness loop, and deployed the pipeline on AWS for low-latency generation. The result is a production-style ML workflow that blends data science, backend orchestration, and DevOps to ship a user-facing product.
What makes this project different:
Multi-label flavor modeling instead of single “primary taste.”
Ingredient quantities as features, not just presence/absence.
Genetic Algorithm for constrained search, not brute force.
Fitness driven by trained ML models, not hand-crafted rules.
This turns cocktail creation into a structured optimization problem similar to real-world engineering systems. It runs on a serverless AWS stack so it stays reliable, cost-aware, and responsive for users.
Performance highlights: average final fitness of 95.2%, average fitness of 90.6%, and recipe generation completing in about 45 seconds end-to-end.
The system scales smoothly by batching model evaluations per generation, cutting inference calls by 99.9% across a full run while keeping quality intact.

Each recipe is evolved from mandatory ingredients and target flavor profiles using ML-powered genetic optimization.
Mandatory
Sugar Syrup (2:1), Vodka
Generated Composition
Mandatory
Lime Juice, Vodka
Generated Composition
Mandatory
Vodka, Spiced Rum
Generated Composition
Mandatory
None
Generated Composition
Mandatory
Gin
Generated Composition
Mandatory
Malt Whisky
Generated Composition
All taste classifiers were trained using Logistic Regression with tuned thresholds:
| Flavor | AUC | Precision | Recall | F1-Score |
|---|---|---|---|---|
| Creamy | 0.998 | 0.917 | 1.000 | 0.957 |
| Floral | 0.971 | 0.458 | 0.647 | 0.537 |
| Bittersweet | 0.960 | 0.802 | 0.853 | 0.827 |
| Spicy | 0.943 | 0.571 | 0.600 | 0.585 |
| Sweet | 0.901 | 0.731 | 0.731 | 0.731 |
| Herbal | 0.881 | 0.531 | 0.682 | 0.597 |
| Fruity | 0.863 | 0.750 | 0.596 | 0.664 |
| Citrus | 0.849 | 0.660 | 0.865 | 0.749 |
| Savoury | 0.750 | 0.391 | 0.429 | 0.409 |
Even with simple linear models, the system achieves strong AUC and usable F1 scores — validating the feature design and framing of flavor prediction.
These models directly power the GA fitness evaluation.