Sobre Nosotros

Cómo construimos InWine y qué hay detrás de cada recomendación.

En InWine partimos de más de 7.500 vinos españoles, los completamos con información real de Vivinos y los analizamos a fondo para construir un sommelier virtual accesible a cualquier persona, sin que necesite saber nada de vinos.

De dónde viene la información

Kaggle

Spanish Wine Quality Dataset

Un catálogo con 7.500 vinos españoles precio, puntuación, región, bodega y año de cosecha. Fue nuestro punto de partida.

Vivinos

Vivinos · datos reales de sabor

Visitamos la web de Vivinos con un robot para añadir a cada vino su tipo, su uva y sus notas de cata, información que el catálogo original no tenía.

Cómo lo construimos

01

Recogida de datos

Completar la ficha de cada vino con información real

El catálogo de partida tenía mucha información sobre precio y puntuaciones, pero le faltaba lo más importante para recomendar un vino: a qué sabe, qué tipo es y con qué uva está hecho. Programamos un robot que visitó Vivinos vino a vino y añadió esos datos.

The starting catalogue had plenty of price and rating information, but lacked what matters most for recommending a wine: what it tastes like, what type it is and which grape it's made from. We built a bot that visited Vivinos wine by wine and added that data.

  • Se procesaron 6.956 vinos automáticamente
  • Datos añadidos: tipo (tinto, blanco…), uva y notas de sabor
  • Más de 51 descriptores de sabor agrupados en 5 familias (frutal, especiado…)
  • El robot se comportaba como un usuario real para no ser bloqueado
  • 6,956 wines were processed automatically
  • Data added: type (red, white…), grape and flavour notes
  • Over 51 flavour descriptors grouped into 5 families (fruity, spiced…)
  • The bot behaved like a real user to avoid being blocked
Antes → catálogo original
categoría "Rioja Red"
tipo de vino —
uva —
sabores —
→
Después → con Vivinos
categoría eliminado
tipo de vino "Tinto"
uva "Tempranillo"
sabores "Cereza, Roble, Vainilla…"
02

Ordenar los datos

Quedarnos solo con los vinos de verdad, sin repetidos ni errores

7.500 vinos en bruto (con muchos repetidos)
−5.452 vinos repetidos eliminados
2.048 vinos distintos (primera pasada)
−24 repetidos adicionales detectados
2.024 vinos únicos y limpios

El catálogo original tenía un 72,7 % de vinos repetidos. Algunos, como Contino Reserva 2016, aparecían más de 200 veces. Los eliminamos todos antes de empezar a analizar para que los resultados fueran honestos.

The original catalogue had 72.7% duplicate wines. Some, like Contino Reserva 2016, appeared more than 200 times. We removed them all before starting the analysis so the results would be honest.

  • 5.476 vinos repetidos eliminados en total, el 72,7 % del catálogo
  • De 7.500 entradas a 2.024 vinos únicos
  • Separamos el tipo de vino y la uva, que venían mezclados en un mismo campo
  • Añadimos si el vino tiene crianza y una puntuación de calidad-precio
  • Sin datos vacíos en el resultado final (los sabores cubrían el 94,7 % de los vinos)
  • 5,476 duplicate wines removed in total → 72.7% of the catalogue
  • From 7,500 entries to 2,024 unique wines
  • We separated wine type and grape variety, which were mixed in the same field
  • We added whether the wine is aged and a quality-price score
  • No empty data in the final result (flavours covered 94.7% of wines)
03

¿Qué encontramos?

Explorar los datos para entender qué teníamos antes de empezar

Antes de construir el recomendador, miramos los datos con detalle para entender cómo son los vinos que tenemos. Esos descubrimientos guiaron todas las decisiones siguientes.

Before building the recommender, we looked at the data in detail to understand what wines we had. Those discoveries guided all subsequent decisions.

  • Los precios van de 4,99 € a 3.119 €, la mayoría son económicos y muy pocos son de lujo
  • Las puntuaciones de los vinos apenas varían, casi todos tienen entre 4,2 y 4,9 sobre 5
  • Hay 76 regiones distintas, pero Ribera del Duero y Rioja suman la mitad de los vinos
  • Tempranillo es la uva del 55 % de los vinos; el 20 % es mezcla de variedades
  • El 20,6 % de los vinos tiene crianza, suelen ser más caros, pero no siempre
  • Muchos vinos son el mismo pero de diferentes añadas, algo a tener en cuenta al entrenar el modelo
  • Prices range from €4.99 to €3,119 — most are affordable and very few are luxury
  • Wine ratings barely vary, almost all fall between 4.2 and 4.9 out of 5
  • There are 76 different regions, but Ribera del Duero and Rioja account for half the wines
  • Tempranillo is the grape in 55% of wines; 20% are blends
  • 20.6% of wines are aged, they tend to be pricier, but not always
  • Many wines are the same but from different vintages, something to keep in mind when training the model
2.024 VINOS
  • Tinto 83,7 %
  • Blanco 6,8 %
  • Generoso 4,4 %
  • Desconocido 3,2 %
  • Espumoso 1,9 %
04

Preparar los datos

Poner todos los datos en el mismo idioma para poder compararlos

Precio sin ajustar
Mayoría económicos, muy pocos muy caros
→
ajuste
Precio ajustado
Los precios quedan equilibrados y fáciles de comparar

Para que el recomendador pueda comparar vinos de forma justa, necesitamos que todos los datos hablen el mismo idioma. Un vino de 5 € y uno de 500 € no pueden pesar igual en bruto, hay que equilibrarlos primero.

For the recommender to compare wines fairly, we need all data to speak the same language. A €5 wine and a €500 wine can't carry equal raw weight, they need to be balanced first.

  • El precio se ajusta matemáticamente para que los vinos caros no distorsionen las comparaciones
  • El tipo de vino (tinto, blanco…) se convierte en valores numéricos para que el modelo lo entienda
  • La región y la uva se sustituyen por su precio y puntuación medios, lo que es más útil que solo su nombre
  • Evitamos contar el precio tres veces, algo que habría dado demasiado peso al dinero
  • Normalizamos todos los números para que ningún dato domine sobre los demás por su escala
  • Cuidamos que bodegas completas no acabaran a la vez en el entrenamiento y en la prueba
  • Prices are mathematically adjusted so expensive wines don't distort comparisons
  • Wine type (red, white…) is converted to numeric values so the model can understand it
  • Region and grape are replaced by their average price and ratin, more useful than just their name
  • We avoided counting price three times, which would have given money too much weight
  • We normalised all numbers so no single data point dominates others due to its scale
  • We ensured entire wineries didn't end up simultaneously in training and test sets
05

Agrupando los vinos

Familias de vinos descubiertas automáticamente con k-means

Con todos los datos preparados, aplicamos el algoritmo k-means para agrupar los 2.024 vinos según sus similitudes de precio, tipo, uva y región. El resultado son 8 perfiles distintos que sirven de base a las recomendaciones de InWine.

With all the data prepared, we applied the k-means algorithm to group the 2,024 wines by their similarities in price, type, grape and region. The result is 8 distinct profiles that form the foundation of InWine's recommendations.

  • Iconos de Guarda → 315 tintos de muy alta gama: Ribera del Duero, Priorato, Rioja
  • Tintos Jóvenes Premium → 758 vinos, el grupo más numeroso: Ribera del Duero, Priorato
  • Tintos Crianza Clásicos → 333 tintos con barrica al 100 %: Rioja y Ribera del Duero
  • Tintos Jóvenes de Autor → 288 tintos sin crianza de regiones emergentes
  • Blancos Selectos → 137 blancos de gama media-alta: Rias Baixas, Rueda, Rioja
  • Generosos y Jerez → 90 vinos de Jerez y Montilla-Moriles
  • Espumosos Premium → 38 cavas con crianza prolongada
  • Vinos Singulares → 65 vinos de perfil no convencional
  • Signature Reserve → 315 premium reds: Ribera del Duero, Priorat, Rioja
  • Everyday Red → 758 wines, the largest group: Ribera del Duero, Priorat
  • Oak & Time → 333 reds, 100% barrel-aged: Rioja and Ribera del Duero
  • Fresh & Easy → 288 unoaked reds from emerging regions
  • Elegant Whites → 137 mid-premium whites: Rias Baixas, Rueda, Rioja
  • Mediterranean Soul → 90 wines from Jerez and Montilla-Moriles
  • Bubble & Celebration → 38 long-aged Cavas
  • Wild Terroir → 65 wines with an unconventional profile
Tintos Jóvenes Premium Everyday Red
758
Tintos Crianza Clásicos Oak & Time
333
Iconos de Guarda Signature Reserve
315
Tintos Jóvenes de Autor Fresh & Easy
288
Blancos Selectos Elegant Whites
137
Generosos y Jerez Mediterranean Soul
90
Vinos Singulares Wild Terroir
65
Espumosos Premium Bubble & Celebration
38
06

Ver los grupos en el espacio

Mapa 3D animado de los 2.024 vinos proyectados con PCA

Arrastra para rotar · pasa el cursor sobre los grupos

Pasa el cursor sobre un grupo o sobre la leyenda para ver detalles

Los 2.024 vinos existen en un espacio de 18 dimensiones. El PCA los proyecta en tres ejes que juntos conservan el 58 % de la varianza, suficiente para ver que los 8 grupos forman zonas propias en el mapa.

The 2,024 wines exist in an 18-dimensional space. PCA projects them onto three axes that together preserve 58% of the variance, enough to see that the 8 groups form distinct zones on the map.

  • PC1 (31,2 %) → separa tintos de no-tintos: a la derecha, temperatura alta y uva tinta; a la izquierda, blancos, generosos y espumosos
  • PC2 (17,6 %) → separa por precio y valoración: arriba los más caros y mejor puntuados, abajo mejor relación calidad-precio
  • PC3 (9,5 %) → refleja la crianza y elaboración: cavas y espumosos en positivo, tintos jóvenes sin barrica en negativo
  • Con solo 6 componentes se supera el 80 % de varianza; a partir del componente 12 la aportación es prácticamente nula
  • PC1 (31.2%) → separates reds from non-reds: right side has high-temperature red-grape wines; left has whites, fortified and sparkling
  • PC2 (17.6%) → separates by price and rating: top has most expensive and highest-rated, bottom has best value
  • PC3 (9.5%) → reflects ageing and production: Cavas and sparkling positive, young unoaked reds negative
  • With just 6 components we exceed 80% variance; from component 12 onwards the contribution is practically zero

Sesgos que debes conocer

InWine es una herramienta honesta. Nuestro conjunto de datos refleja el mercado del vino español tal como existe en Vivinos y Kaggle, no como nos gustaría que fuera. Eso introduce sesgos reales que pueden hacer que el recomendador favorezca ciertos vinos sobre otros.

InWine is an honest tool. Our dataset reflects the Spanish wine market as it exists on Vivinos and Kaggle, not as we would like it to be. This introduces real biases that may cause the recommender to favour certain wines over others.

83,7 %

Sesgo de tipo de vino

Casi 9 de cada 10 vinos del catálogo son tintos. El recomendador tiende a sugerir tintos incluso cuando el perfil del usuario encajaría igual de bien con un blanco o un espumoso.

Almost 9 in 10 wines in the catalogue are red. The recommender tends to suggest reds even when the user's profile would match whites or sparkling wines equally well.

~50 %

Sesgo geográfico

Rioja y Ribera del Duero concentran la mitad del catálogo. Regiones menos conocidas como Toro, Bierzo o Terra Alta aparecen con mucha menos frecuencia y tienen menos posibilidades de ser recomendadas.

Rioja and Ribera del Duero account for half the catalogue. Lesser-known regions like Toro, Bierzo or Terra Alta appear far less often and are therefore less likely to be recommended.

55 %

Sesgo de uva

El Tempranillo representa el 55 % de los vinos. Variedades minoritarias como Mencía, Garnacha Blanca o Xarel·lo tienen poca representación y es más difícil que aparezcan en las recomendaciones.

Tempranillo accounts for 55% of wines. Minority varieties such as Mencía, Garnacha Blanca or Xarel·lo are underrepresented and less likely to surface in recommendations.

4,2–4,9

Sesgo de puntuación

Las valoraciones de los vinos apenas varían: casi todos están entre 4,2 y 4,9 sobre 5. Esta falta de rango hace que la puntuación aporte muy poca información real al modelo para diferenciar la calidad.

Wine ratings barely vary, almost all fall between 4.2 and 4.9 out of 5. This narrow range means ratings provide very little useful signal for the model to differentiate quality.

5,3 %

Sesgo de cobertura de sabores

El 5,3 % de los vinos no tenía notas de cata en Vivinos. Para esos vinos el modelo trabaja sin información de sabor, lo que puede afectar a la calidad de sus recomendaciones.

5.3% of wines had no tasting notes on Vivinos. For those wines the model works without any flavour information, which may reduce the quality of their recommendations.

ES

Sesgo de origen

El catálogo contiene únicamente vinos españoles. InWine no puede comparar ni recomendar vinos de otras regiones del mundo, aunque el usuario los prefiera.

The catalogue contains only Spanish wines. InWine cannot compare or recommend wines from other regions of the world, even if the user prefers them.

MrSommi