Benvenuti ad un nuovo episodio. Prima iniziare con l'argomento
di oggi. Vi invito a iscrivervi, attivare
la campanella e a lasciare una valutazione positiva.
Il vostro supporto è fondamentale per far crescere
questa comunità e migliorare l'episodio.
Se avete dubbi, domande oanchesolocuriositapotetescrivermiamauro.spezzaferro@gmail.com.
Il viaggio di oggi inizia da qualcosa di piccolo, quasi
invisibile, ma che ci accompagna per tutta la nostra vita.
Il dato, un dato è una rappresentazione della realtà,
può essere un numero, 1 parola, un'immagine, un suono.
È il modo in cui trasformiamo ciò che accade intorno a noi in
qualcosa che può essere memorizzato, trasmesso ed
elaborato. Senza dati l'informatica
semplicemente non esisterebbe. Ma c'è un punto fondamentale da
chiarire, un dato da solo non ha significato.
Un numero come 42 1, data una stringa di testo, sono solo
singoli. Il significato nasce quando
mettiamo i dati in un contesto, quando sappiamo cosa
rappresentano, da dove arrivano e come sono collegati ad altri
dati. Ed è proprio questo il cuore
dell'evoluzione dell'informatica.
All'inizio i computer gestivano pochi dati strutturati, ordinati
con grande rigidità. Col tempo però, la quantità di
dati è cresciuta in modo esponenziale.
Oggi, ad esempio, produciamo dati in continuazione, navigando
su Internet, usando i social, vivendo la nostra quotidianità
digitale. A questo punto nasce un
problema, come dare un senso a tutto questo caos?
Quando i dati sono pochi possiamo analizzarli a mano.
Quando diventano milioni o miliardi serve qualcosa di
diverso. Servono metodi automatici capaci
di individuare schemi, somiglianze, regolarità.
E qui entra in gioco un concetto chiave, la relazione tra i dati.
I dati iniziano a essere utili quando possiamo confrontarli,
misurare quanto sono simili o diversi, capire se seguono un
comportamento comune, un pattern.
Ed è proprio osservando queste relazioni che emergono strutture
nascoste. Immaginate una stanza piena di
oggetti sparsi sul pavimento, presi singolarmente.
Sono solo oggetti, ma se iniziamo a raggrupparli per
forma, colore o funzione, improvvisamente l'ordine emerge
dal disordine. Non abbiamo cambiato gli
oggetti, abbiamo solo trovato un modo per organizzarli ed
esattamente questo che fa la clusterizzazione dei dati o
clustering. È una tecnica che permette di
raggruppare automaticamente i dati in base alla loro
somiglianza, senza sapere in anticipo quali gruppi esistono.
Non diamo risposte al computer, gli chiediamo di scoprire la
struttura nascosta nei dati. Il clustering è uno dei primi
strumenti che utilizziamo quando vogliamo capire un'insieme di
dati sconosciuto e il passaggio dalla semplice raccolta
all'interpretazione, dal dato isolato al significato
collettivo. Entriamo subito nel vivo, uno
dei primi approccio intuitivi ver clustering è la
visualizzazione dei dati, per esempio su una mappa di target.
Immaginiamo di avere tanti punti sparsi su una mappa.
Ogni punto rappresenta un dato, una persona, un cliente, un
evento, una posizione geografica.
Presi singolarmente risultano solo puntini, ma quando iniziamo
a guardarli nel loro insieme, qualcosa cambia.
L'occhio umano è straordinariamente bravo a
riconoscere pattern. Vediamo zone più dense, aree
vuote, concentrazioni naturali. Senza usare alcun algoritmo.
Stiamo già facendo clustering. Stiamo raggruppando mentalmente
i dati in base alla loro vicinanza, cercando somiglianze
e strutture. È il modo più naturale che
abbiamo per dare un ordine al caos.
Una mappa di target funziona proprio così, che si tratti di
clienti distribuiti in una città, di utenti su un servizio
online o di dati rappresentati in uno spazio astratto, la
visualizzazione ci permette di individuare gruppi che
condividono caratteristiche comuni, zone calde, cluster
evidenti, aree di interesse. Ovviamente questo approccio ha
un limite, funziona bene quando i dati sono pochi e le
dimensioni sono due o tre quelle che possiamo rappresentare
visivamente. Ma nel mondo reale i dati hanno
spesso decine, centinaia di variabili.
Ed è qui che l'intuizione umana non basta più. e a questo punto
entra in gioco l'informatica. Gli algoritmi di clustering
fanno esattamente ciò che farebbe il nostro cervello
davanti a una mappa piena di punti, ma la fanno in modo
automatico, scalabile e matematicamente rigoroso.
Calcolano distanze, misurano somiglianze e individuano gruppi
anche quando non possiamo più vederli.
La visualizzazione, quindi, è solo il primo passo, serve per
capire il problema, per farsi un'idea, per costruire
intuizioni, ma per andare oltre, per lavorare su grandi quantità
di dati, dobbiamo affidarci agli algoritmi.
Ed è qui che iniziamo davvero a capire che cos'è il clustering.
In che modo la clusterizzazione può aiutarci in un'applicazione
reale. Ebbene, supponiamo di dover
costruire un'applicazione che consenta di visualizzare su una
mappa, ad esempio sfruttando servizi come.
Maps on riflette la posizione di una serie di interventi.
Immaginiamo di avere un dataset piuttosto numeroso, composto da
informazioni come cognome, indirizzo, posizione GPS.
Un primo approccio potrebbe essere quello di visualizzare un
marker per ogni elemento del dataset.
Tuttavia, questa soluzione rappresenta rapidamente dei
limiti se il numero di elementi è elevato o se più interventi si
trovano in posizioni geografiche molto vicine tra loro, ad
esempio sulla stessa strada con coordinate GPS leggermente
diverse. L'azione sarà costretta a creare
un gran numero di market, calcolare il loro posizionamento
e renderizzarli tutti contemporaneamente sulla mappa.
Questo comporta un rallentamento evidente lato client, sia nella
fase di costruzione della mappa sia nella sua visualizzazione.
Il problema non è la mappa in sé, ma il carico computazionale
necessario per gestire centinaia o migliaia di marker singoli.
Ed è proprio qui che entra in gioco nel mondo reale la
clusterizzazione per. Risolvere questo problema
possiamo adottare una strategia di clustering basata su un
criterio di somiglianza, ad esempio prossimità geografica,
le coordinate GPS, indirizzo o area di riferimento.
L'idea è quella di raggruppare più punti vicini in un unico
cluster, rappresentato sulla mappa da un solo marker
aggregato. Questo marker può indicare il
numero di elementi contenuti al suo interno e scomporsi
progressivamente man mano che l'utente effettua lo zoom.
L'adozione della clusterizzazione porta diversi
vantaggi migliori performance, diminuisce il numero di marker
da renderizzare, riduzione quindi del carico lato client,
mappa più leggibile, soprattutto a livelli di Zoom bassi.
Esperienza utente migliorata con Inter relazioni più fluide in
sostanza, sfruttando il clustering dei dati, il peso
delle operazioni di posizionamento e visualizzazione
si riduce drasticamente, rendendo l'applicazione più
efficiente e scalabile. Ma adesso entriamo nel mondo
degli algoritmi che sono presenti dietro alla
clusterizzazione nel contesto. La visualizzazione di marker su
una mappa. Il Clustering non è solo un
concetto astratto, ma viene implementato attraverso
algoritmi ben definiti. Tra i più utilizzati in scenari
reali come questo troviamo approcci greed based, distance
based EK minds, ognuno con caratteristiche e casi d'uso
specifici. Nel castering Grid based lo
spazio geografico viene suddiviso in una griglia di
celle, ad esempio quadrati o rettangoli.
Tutti i punti che ricadono nella stessa cella vengono
automaticamente raggruppati in un unico cluster.
Nel caso della mappa, la griglia può dipendere dal livello di
zoom. Ogni cella rappresenta una
porzione visibile della mappa. I marker all'interno della
stessa cella vengono mostrati come un singolo cluster qu.
Esto approccio è molto veloce perché non richiede il calcolo
delle distanze tra tutti i punti, ma solo l'assegnazione di
ciascun punto ha una cella. E l'approccio più usato nelle
librerie come liflet, punto market cluster.
Nello clustering distance based i punti vengono raggruppati in
base alla distanza geografica tra di loro due o più marker
vengono inseriti nello stesso cluster se la loro distanza è
inferiore a una soglia prestabilita.
Infine il K minds è un algoritmo de clustering basato su
centroidi. In questo caso si sceglie a
priori il numero di cluster K indicato a ogni punto viene
assegnato a un centroide più vicino.
I centroidi vengono aggiornati iterativamente.
Nel contesto della mappa, K mis può essere usato solo lato
server e serve per suddividere il territorio, aree operative,
raggruppare interventi per zone di competenza.
Preparare cluster stabili prima della visualizzazione questi
algoritmi permettono di migliorare non solo il software,
ma anche la percezione del dato di come viene rappresentato.
Siamo arrivati alla fine di questo viaggio, siamo partiti da
qualcosa di apparentemente semplice, il dato, un numero, 1
parola, una posizione sulla mappa e abbiamo visto come da
solo non dica quasi nulla. Ma quando i dati diventano
tanti, quando iniziano a essere messi in relazione, confrontati,
raggruppati, allora succede qualcosa di interessante, emerge
una struttura, emergono pattern, comportamenti, informazioni.
La clusterizzazione è proprio questo, un modo, come abbiamo
detto, per trasformare il caos in ordine per.
Passare da una nuvola indistinta di punti a gruppi che hanno un
significato abbiamo visto come questo concetto non sia solo
teorico, ma profondamente pratico.
Lo troviamo nelle mappe che usiamo ogni giorno, nelle
applicazioni reali e nelle scelte progettuali che rendono
un software più veloce, più leggibile, più umano.
Che si tratti di un approccio grid based distance base o di un
algoritmo come il K minds, il principio rimane lo stesso, non
stiamo solo visualizzando dati, stiamo cercando di capirli.
E forse è proprio questo il messaggio più importante da
portare a casa. Oggi l'informatica non è fatta
solo di codici algoritmi, ma di decisioni su come rappresentare
la realtà. E ogni scelta, anche quella di
raggruppare dei punti su una mappa, racconta un modo di
interpretare il mondo. Grazie per aver ascoltato la
puntata e come sempre vi aspetto al prossimo episodio.