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.
Log in or sign up for Devpost to join the conversation.