What it does

WineMatch is an interactive Shiny app designed to help users discover personalized wine recommendations based on their preferences. The app uses machine learning to predict the best wine match by considering preferences in alcohol level, color intensity, and flavanoid levels (an antioxidant often preferred for its health benefits). It provides users with real-time recommendations along with images of the wines and their predicted probabilities of being the best match.

How I built it

The app was built using R and Shiny for the user interface, with machine learning models developed in R. I used the Wine Data Set from the UCI Machine Learning Repository for model training. Specifically, an elastic net algorithm, a penalized regression method which implements feature selection, was trained to predict the type of wine using leave-one-out cross-validation and accuracy evaluation metric. This resulted in sensitivity=1.000, specificity=0.966, and C-statistic=0.99.

Challenges I ran into

Determining optimal training method for an outcome with three categories and subsequently extracting those probabilities. I originally attempted to do this using the log odds function due to elastic net's linearity on the log odds scale. But this didn't work because of the three-category structure.

What's next for WineMatch: Your personalized wine pairing guide

It would be interesting to find datasets with more wine types to expand the list of wine recommendations.

Built With

Share this project:

Updates