Zena.food
← Torna alla mappa

Come calcoliamo le Scoperte Nascoste

Non diciamo "questo locale è buono". Diciamo: "questo locale è migliore di quanto il suo profilo lascerebbe prevedere". È una differenza fondamentale — e questa pagina spiega esattamente come arriviamo a quella conclusione, per ristoranti, bar e caffetterie.

Il problema che vogliamo risolvere

Google Maps premia chi è già visibile. Un locale con molte recensioni appare in cima alle ricerche, ottiene ancora più recensioni, e così via. I locali nuovi, etnici o di quartiere — quelli che magari servono meglio — restano invisibili non per mancanza di qualità, ma per mancanza di storia algoritmica.

La nostra risposta è confrontare ogni locale non con gli altri, ma con sé stesso: con quello che ci aspettiamo riceva, dato il suo profilo strutturale. Un bar tradizionale non viene mai confrontato con un ristorante gastronomico.

Step 1 — Costruiamo il profilo del locale

Per ogni locale raccogliamo informazioni oggettive dalla Google Places API:

  • Tipo di locale — ristorante, bar o caffetteria (classificato in base ai tipi Google)
  • Numero di recensioni — più recensioni significa più visibilità algoritmica pregressa
  • Fascia di prezzo — €, €€, €€€ o €€€€
  • Categoria — per i ristoranti: pizzeria, trattoria, cucina etnica, pesce, ecc.; per i bar: cocktail bar, wine bar, birreria, bar tradizionale; per i caffè: caffetteria, pasticceria, gelateria (classificato da Gemini AI)
  • Posizione — nel Centro Storico? vicino ai monumenti? su una collina?
  • Densità della zona — quanti altri locali ci sono nelle vicinanze
  • Distanza dai trasporti — metro, ferrovia o funicolare
  • È una catena commerciale? — McDonald's o Starbucks hanno già massima visibilità

Da questi dati calcoliamo anche l'Indice Turistico (TI): una misura da 0 a 1 che indica quanto il locale sia esposto al circuito turistico.

TI = 0,40 · Si + 0,40 · Vi + 0,20 · Ei
  • Si — Prossimità ai monumenti: un locale a 50 m dall'Acquario ha Si alto; uno a Castelletto quasi zero
  • Vi — Vocabolario delle recensioni: Gemini AI analizza il testo delle recensioni cercando segnali turistici ("right next to the aquarium", "perfect for tourists") vs. segnali locali ("posto alla boa", "vera focaccia", "prezzi onesti")
  • Ei — Accessibilità topografica: un locale al livello del mare è facilmente raggiungibile dai turisti; uno a 300 m di quota sui caruggi, molto meno

Un TI basso non significa che il locale è brutto — significa che i suoi clienti sono prevalentemente residenti locali, non turisti di passaggio.

Step 2 — Il modello prevede il voto atteso

Usiamo un modello di machine learning chiamato XGBoost, addestrato su 1.578 locali genovesi (915 ristoranti, 547 bar, 116 caffetterie). Il modello è unificato: un'unica formula copre tutti i tipi di locale, imparando automaticamente baseline distinte per ciascuno. Puoi immaginarlo come un esperto che conosce Genova a memoria:

"Un bar tradizionale nel Centro Storico con 80 recensioni, a 200 m dalla metro — in media ottiene 4,2 stelle su Google Maps."

Il modello ripete questo ragionamento per ogni locale del dataset e produce un voto atteso: non ciò che il locale merita, ma ciò che il mercato genovese produce statisticamente per quel profilo.

Esempio concreto — Ravioli Orientali

Prendiamo un ristorante reale: Ravioli Orientali, cucina etnica nel Centro Storico.

CaratteristicaValore
Tipo di localeRistorante
CategoriaInternazionale (etnica)
PosizioneCentro Storico, livello del mare
Densità competitiva della zonaAlta — molti locali nelle vicinanze
Distanza dai trasportiRelativamente lontano
Indice Turistico0,438 — esposizione turistica moderata
È una catena?No

Il modello osserva tutti questi fattori e produce la sua previsione:

Voto atteso → 4,43 stelle

Perché 4,43 e non 4,7? Perché la cucina etnica in zona ad alta concorrenza, lontana dai trasporti, storicamente riceve valutazioni attorno a quella media. Non è un giudizio di qualità — è ciò che il mercato produce statisticamente per quel profilo.

Step 3 — Misuriamo la differenza (il Residuo)

La differenza tra il voto reale e il voto atteso si chiama residuo:

Residuo = Voto reale − Voto previsto dal modello

Tornando a Ravioli Orientali:

4,7 − 4,43 = +0,27

Un residuo positivo significa che il locale supera le aspettative per il suo profilo. Un residuo negativo significa che le delude. I locali con residuo nell'85° percentile — il 15% più alto tra tutti i 1.578 locali analizzati — sono classificati come 💎 Scoperta Nascosta.

Ravioli Orientali si trova all'86° percentile: supera l'86% dei locali genovesi nel gap tra qualità reale e aspettative del modello. Non è visibile su Google Maps quanto meriterebbe — è esattamente il tipo di locale che Zena.food vuole far emergere.

Perché questo approccio è più equo?

Un ristorante di lusso nel centro con 2.000 recensioni non viene confrontato con una trattoria di quartiere con 80. Un bar cocktail in porto non viene confrontato con un bar tradizionale in collina. Ogni locale è confrontato con ciò che il suo profilo — tipo, categoria, posizione, storico — renderebbe prevedibile. Una caffetteria sui caruggi che ottiene 4,7 è molto più sorprendente di una caffetteria turistica in Via XX Settembre con lo stesso voto — e il nostro modello lo riconosce.

Come classifichiamo i quartieri

Una delle feature del modello è il tipo di quartiere — una classificazione automatica di ogni zona della città in quattro livelli: Eccellente, Buono, Nella media, Debole. Ecco come viene calcolata.

Step A — Dividiamo la città in zone

Usiamo la griglia esagonale H3 (il sistema open source di Uber per l'indicizzazione spaziale). Ogni esagono di risoluzione 6 copre circa 36 km² — più o meno un quartiere intero. Per ciascuna zona aggreghiamo tutte le informazioni dei locali che contiene:

  • Numero totale di locali
  • Voto medio di tutti i locali nella zona
  • Numero totale di recensioni (indica il livello di visibilità della zona)
  • Proporzione di catene commerciali
  • Diversità culinaria (quanti tipi diversi di cucina esistono)
  • Livello di prezzo medio

Step B — Raggruppiamo le zone in 4 cluster (K-means)

Le 6 metriche vengono normalizzate e ridotte con PCA (analisi delle componenti principali), poi un algoritmo di clustering K-means raggruppa automaticamente le zone in 4 gruppi simili. L'algoritmo non sa ancora cosa significano questi gruppi — li trova solo per somiglianza matematica.

Step C — Ordiniamo i gruppi per qualità

A ciascun cluster assegniamo un punteggio:

score = voto medio + log(recensioni totali medie) × 0,1

Il cluster con il punteggio più alto diventa Eccellente, poi in ordine decrescente Buono, Nella media,Debole. Ogni locale eredita il tipo di quartiere della zona H3 in cui si trova.

TipoCaratteristica tipicaEsempio
EccellenteAlta densità, voti alti, molte recensioniPorto Antico, Via XX Settembre
BuonoBuona offerta, buona visibilitàAlbaro, Foce, Nervi
Nella mediaZona residenziale con offerta standardBairros intermedi
DebolePochi locali, bassa visibilità algoritmicaZone molto periferiche

Perché questo aiuta a trovare le Scoperte Nascoste?

Il modello usa il tipo di quartiere come feature perché lo stesso voto ha significati diversi in zone diverse. Un locale con 4,5 stelle in una zonaEccellente (dove la concorrenza è alta e i voti medi già lo sono) è meno sorprendente di un locale con 4,5 stelle in una zona Debole dove il modello si aspettava molto meno. Il tipo di quartiere rende il confronto più equo.

I fattori principali (SHAP)

Per ogni Scoperta Nascosta mostriamo i fattori principali che hanno influenzato la classificazione. Questi valori — calcolati con l'analisi SHAP (SHapley Additive exPlanations) — indicano quali caratteristiche hanno contribuito di più a rendere quel locale sorprendente rispetto alle aspettative.

  • Una freccia significa che quella caratteristica haaumentato il voto previsto — il locale supera le aspettative nonostante quel fattore lo avvantaggi già
  • Una freccia significa che quella caratteristica haabbassato il voto previsto — il locale supera le aspettativenonostante quel fattore lo penalizzi strutturalmente

Per Ravioli Orientali: la densità alta di locali (↑) avrebbe dovuto penalizzare le aspettative, ma il locale le supera comunque. Ladistanza dai trasporti (↓) riduce la visibilità attesa — e il ristorante ottiene comunque 4,7. Entrambi i segnali rafforzano la classificazione come scoperta nascosta genuina.

Cosa non rileviamo

  • Locali con promozioni a pagamento su Google Maps (non rilevabili via API pubblica)
  • Cambiamenti recenti — chiusure, nuovi gestori, ristrutturazioni dopo la data del nostro ultimo aggiornamento
  • La qualità soggettiva del servizio, dell'ambiente o dell'esperienza complessiva

Verifica sempre le informazioni su Google Maps prima di visitare un locale.

Domande o segnalazioni

Hai trovato un locale classificato in modo non corretto? Un posto chiuso? Una Scoperta Nascosta che conosci e che merita più attenzione? Scrivici a info@zena.food.