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.
- 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.
| Caratteristica | Valore |
|---|---|
| Tipo di locale | Ristorante |
| Categoria | Internazionale (etnica) |
| Posizione | Centro Storico, livello del mare |
| Densità competitiva della zona | Alta — molti locali nelle vicinanze |
| Distanza dai trasporti | Relativamente lontano |
| Indice Turistico | 0,438 — esposizione turistica moderata |
| È una catena? | No |
Il modello osserva tutti questi fattori e produce la sua previsione:
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:
Tornando a Ravioli Orientali:
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:
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.
| Tipo | Caratteristica tipica | Esempio |
|---|---|---|
| Eccellente | Alta densità, voti alti, molte recensioni | Porto Antico, Via XX Settembre |
| Buono | Buona offerta, buona visibilità | Albaro, Foce, Nervi |
| Nella media | Zona residenziale con offerta standard | Bairros intermedi |
| Debole | Pochi locali, bassa visibilità algoritmica | Zone 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.