1
00:00:13,300 --> 00:00:16,300
Benvenuti ad un nuovo episodio. 
Prima iniziare con l'argomento 

2
00:00:16,300 --> 00:00:18,420
di oggi. 
Vi invito a iscrivervi, attivare

3
00:00:18,420 --> 00:00:20,940
la campanella e a lasciare una 
valutazione positiva. 

4
00:00:21,300 --> 00:00:23,820
Il vostro supporto è 
fondamentale per far crescere 

5
00:00:23,820 --> 00:00:25,620
questa comunità e migliorare 
l'episodio. 

6
00:00:26,950 --> 00:00:32,590
Se avete dubbi, domande 
oanchesolocuriositapotetescrivermiamauro.spezzaferro@gmail.com.

7
00:00:33,830 --> 00:00:36,470
Il viaggio di oggi inizia da 
qualcosa di piccolo, quasi 

8
00:00:36,470 --> 00:00:39,110
invisibile, ma che ci accompagna
per tutta la nostra vita. 

9
00:00:39,310 --> 00:00:43,030
Il dato, un dato è una 
rappresentazione della realtà, 

10
00:00:43,430 --> 00:00:46,870
può essere un numero, 1 parola, 
un'immagine, un suono. 

11
00:00:46,990 --> 00:00:50,110
È il modo in cui trasformiamo 
ciò che accade intorno a noi in 

12
00:00:50,110 --> 00:00:52,910
qualcosa che può essere 
memorizzato, trasmesso ed 

13
00:00:52,910 --> 00:00:55,790
elaborato. 
Senza dati l'informatica 

14
00:00:55,790 --> 00:00:58,990
semplicemente non esisterebbe. 
Ma c'è un punto fondamentale da 

15
00:00:58,990 --> 00:01:01,710
chiarire, un dato da solo non ha
significato. 

16
00:01:02,760 --> 00:01:06,480
Un numero come 42 1, data una 
stringa di testo, sono solo 

17
00:01:06,480 --> 00:01:08,790
singoli. 
Il significato nasce quando 

18
00:01:08,790 --> 00:01:12,150
mettiamo i dati in un contesto, 
quando sappiamo cosa 

19
00:01:12,150 --> 00:01:15,350
rappresentano, da dove arrivano 
e come sono collegati ad altri 

20
00:01:15,350 --> 00:01:17,550
dati. 
Ed è proprio questo il cuore 

21
00:01:17,550 --> 00:01:19,070
dell'evoluzione 
dell'informatica. 

22
00:01:19,870 --> 00:01:23,790
All'inizio i computer gestivano 
pochi dati strutturati, ordinati

23
00:01:23,790 --> 00:01:26,670
con grande rigidità. 
Col tempo però, la quantità di 

24
00:01:26,670 --> 00:01:28,750
dati è cresciuta in modo 
esponenziale. 

25
00:01:29,190 --> 00:01:32,750
Oggi, ad esempio, produciamo 
dati in continuazione, navigando

26
00:01:32,750 --> 00:01:35,870
su Internet, usando i social, 
vivendo la nostra quotidianità 

27
00:01:35,870 --> 00:01:38,270
digitale. 
A questo punto nasce un 

28
00:01:38,270 --> 00:01:40,990
problema, come dare un senso a 
tutto questo caos? 

29
00:01:41,510 --> 00:01:44,110
Quando i dati sono pochi 
possiamo analizzarli a mano. 

30
00:01:44,230 --> 00:01:47,070
Quando diventano milioni o 
miliardi serve qualcosa di 

31
00:01:47,070 --> 00:01:49,990
diverso. 
Servono metodi automatici capaci

32
00:01:49,990 --> 00:01:52,590
di individuare schemi, 
somiglianze, regolarità. 

33
00:01:52,990 --> 00:01:56,190
E qui entra in gioco un concetto
chiave, la relazione tra i dati.

34
00:01:56,990 --> 00:01:59,990
I dati iniziano a essere utili 
quando possiamo confrontarli, 

35
00:01:59,990 --> 00:02:03,390
misurare quanto sono simili o 
diversi, capire se seguono un 

36
00:02:03,390 --> 00:02:05,350
comportamento comune, un 
pattern. 

37
00:02:05,350 --> 00:02:08,710
Ed è proprio osservando queste 
relazioni che emergono strutture

38
00:02:08,710 --> 00:02:11,470
nascoste. 
Immaginate una stanza piena di 

39
00:02:11,470 --> 00:02:14,750
oggetti sparsi sul pavimento, 
presi singolarmente. 

40
00:02:14,750 --> 00:02:17,310
Sono solo oggetti, ma se 
iniziamo a raggrupparli per 

41
00:02:17,310 --> 00:02:21,110
forma, colore o funzione, 
improvvisamente l'ordine emerge 

42
00:02:21,110 --> 00:02:23,720
dal disordine. 
Non abbiamo cambiato gli 

43
00:02:23,720 --> 00:02:27,080
oggetti, abbiamo solo trovato un
modo per organizzarli ed 

44
00:02:27,080 --> 00:02:30,280
esattamente questo che fa la 
clusterizzazione dei dati o 

45
00:02:30,320 --> 00:02:33,150
clustering. 
È una tecnica che permette di 

46
00:02:33,150 --> 00:02:35,630
raggruppare automaticamente i 
dati in base alla loro 

47
00:02:35,630 --> 00:02:38,950
somiglianza, senza sapere in 
anticipo quali gruppi esistono. 

48
00:02:39,590 --> 00:02:42,510
Non diamo risposte al computer, 
gli chiediamo di scoprire la 

49
00:02:42,510 --> 00:02:45,870
struttura nascosta nei dati. 
Il clustering è uno dei primi 

50
00:02:45,870 --> 00:02:48,510
strumenti che utilizziamo quando
vogliamo capire un'insieme di 

51
00:02:48,510 --> 00:02:51,430
dati sconosciuto e il passaggio 
dalla semplice raccolta 

52
00:02:51,430 --> 00:02:54,630
all'interpretazione, dal dato 
isolato al significato 

53
00:02:54,630 --> 00:02:58,710
collettivo. 
Entriamo subito nel vivo, uno 

54
00:02:58,710 --> 00:03:01,030
dei primi approccio intuitivi 
ver clustering è la 

55
00:03:01,030 --> 00:03:03,830
visualizzazione dei dati, per 
esempio su una mappa di target. 

56
00:03:04,910 --> 00:03:07,390
Immaginiamo di avere tanti punti
sparsi su una mappa. 

57
00:03:07,790 --> 00:03:11,230
Ogni punto rappresenta un dato, 
una persona, un cliente, un 

58
00:03:11,230 --> 00:03:13,110
evento, una posizione 
geografica. 

59
00:03:13,790 --> 00:03:17,310
Presi singolarmente risultano 
solo puntini, ma quando iniziamo

60
00:03:17,310 --> 00:03:19,670
a guardarli nel loro insieme, 
qualcosa cambia. 

61
00:03:20,150 --> 00:03:22,230
L'occhio umano è 
straordinariamente bravo a 

62
00:03:22,230 --> 00:03:25,270
riconoscere pattern. 
Vediamo zone più dense, aree 

63
00:03:25,270 --> 00:03:28,670
vuote, concentrazioni naturali. 
Senza usare alcun algoritmo. 

64
00:03:28,710 --> 00:03:32,640
Stiamo già facendo clustering. 
Stiamo raggruppando mentalmente 

65
00:03:32,640 --> 00:03:35,440
i dati in base alla loro 
vicinanza, cercando somiglianze 

66
00:03:35,440 --> 00:03:38,310
e strutture. 
È il modo più naturale che 

67
00:03:38,310 --> 00:03:39,950
abbiamo per dare un ordine al 
caos. 

68
00:03:40,630 --> 00:03:43,870
Una mappa di target funziona 
proprio così, che si tratti di 

69
00:03:43,870 --> 00:03:46,430
clienti distribuiti in una 
città, di utenti su un servizio 

70
00:03:46,430 --> 00:03:49,350
online o di dati rappresentati 
in uno spazio astratto, la 

71
00:03:49,350 --> 00:03:51,790
visualizzazione ci permette di 
individuare gruppi che 

72
00:03:51,790 --> 00:03:55,150
condividono caratteristiche 
comuni, zone calde, cluster 

73
00:03:55,150 --> 00:03:59,070
evidenti, aree di interesse. 
Ovviamente questo approccio ha 

74
00:03:59,070 --> 00:04:02,110
un limite, funziona bene quando 
i dati sono pochi e le 

75
00:04:02,110 --> 00:04:05,150
dimensioni sono due o tre quelle
che possiamo rappresentare 

76
00:04:05,150 --> 00:04:08,430
visivamente. 
Ma nel mondo reale i dati hanno 

77
00:04:08,430 --> 00:04:10,230
spesso decine, centinaia di 
variabili. 

78
00:04:10,230 --> 00:04:14,550
Ed è qui che l'intuizione umana 
non basta più. e a questo punto 

79
00:04:14,550 --> 00:04:17,430
entra in gioco l'informatica. 
Gli algoritmi di clustering 

80
00:04:17,470 --> 00:04:19,630
fanno esattamente ciò che 
farebbe il nostro cervello 

81
00:04:19,630 --> 00:04:22,150
davanti a una mappa piena di 
punti, ma la fanno in modo 

82
00:04:22,150 --> 00:04:25,190
automatico, scalabile e 
matematicamente rigoroso. 

83
00:04:26,230 --> 00:04:29,230
Calcolano distanze, misurano 
somiglianze e individuano gruppi

84
00:04:29,230 --> 00:04:31,110
anche quando non possiamo più 
vederli. 

85
00:04:31,430 --> 00:04:34,990
La visualizzazione, quindi, è 
solo il primo passo, serve per 

86
00:04:34,990 --> 00:04:37,350
capire il problema, per farsi 
un'idea, per costruire 

87
00:04:37,350 --> 00:04:41,070
intuizioni, ma per andare oltre,
per lavorare su grandi quantità 

88
00:04:41,070 --> 00:04:43,150
di dati, dobbiamo affidarci agli
algoritmi. 

89
00:04:43,150 --> 00:04:46,430
Ed è qui che iniziamo davvero a 
capire che cos'è il clustering. 

90
00:04:47,070 --> 00:04:49,790
In che modo la clusterizzazione 
può aiutarci in un'applicazione 

91
00:04:49,790 --> 00:04:51,990
reale. 
Ebbene, supponiamo di dover 

92
00:04:51,990 --> 00:04:54,270
costruire un'applicazione che 
consenta di visualizzare su una 

93
00:04:54,270 --> 00:04:56,590
mappa, ad esempio sfruttando 
servizi come. 

94
00:04:56,870 --> 00:05:00,390
Maps on riflette la posizione di
una serie di interventi. 

95
00:05:01,030 --> 00:05:04,150
Immaginiamo di avere un dataset 
piuttosto numeroso, composto da 

96
00:05:04,150 --> 00:05:07,550
informazioni come cognome, 
indirizzo, posizione GPS. 

97
00:05:08,390 --> 00:05:10,830
Un primo approccio potrebbe 
essere quello di visualizzare un

98
00:05:10,830 --> 00:05:12,670
marker per ogni elemento del 
dataset. 

99
00:05:13,150 --> 00:05:15,870
Tuttavia, questa soluzione 
rappresenta rapidamente dei 

100
00:05:15,870 --> 00:05:20,030
limiti se il numero di elementi 
è elevato o se più interventi si

101
00:05:20,030 --> 00:05:22,830
trovano in posizioni geografiche
molto vicine tra loro, ad 

102
00:05:22,830 --> 00:05:26,190
esempio sulla stessa strada con 
coordinate GPS leggermente 

103
00:05:26,190 --> 00:05:28,870
diverse. 
L'azione sarà costretta a creare

104
00:05:28,870 --> 00:05:31,910
un gran numero di market, 
calcolare il loro posizionamento

105
00:05:31,990 --> 00:05:34,670
e renderizzarli tutti 
contemporaneamente sulla mappa. 

106
00:05:35,510 --> 00:05:38,670
Questo comporta un rallentamento
evidente lato client, sia nella 

107
00:05:38,670 --> 00:05:41,550
fase di costruzione della mappa 
sia nella sua visualizzazione. 

108
00:05:42,150 --> 00:05:45,550
Il problema non è la mappa in 
sé, ma il carico computazionale 

109
00:05:45,550 --> 00:05:48,950
necessario per gestire centinaia
o migliaia di marker singoli. 

110
00:05:48,950 --> 00:05:52,390
Ed è proprio qui che entra in 
gioco nel mondo reale la 

111
00:05:52,390 --> 00:05:55,360
clusterizzazione per. 
Risolvere questo problema 

112
00:05:55,360 --> 00:05:58,240
possiamo adottare una strategia 
di clustering basata su un 

113
00:05:58,240 --> 00:06:01,520
criterio di somiglianza, ad 
esempio prossimità geografica, 

114
00:06:01,640 --> 00:06:04,880
le coordinate GPS, indirizzo o 
area di riferimento. 

115
00:06:05,630 --> 00:06:08,430
L'idea è quella di raggruppare 
più punti vicini in un unico 

116
00:06:08,430 --> 00:06:11,270
cluster, rappresentato sulla 
mappa da un solo marker 

117
00:06:11,270 --> 00:06:14,030
aggregato. 
Questo marker può indicare il 

118
00:06:14,030 --> 00:06:17,110
numero di elementi contenuti al 
suo interno e scomporsi 

119
00:06:17,110 --> 00:06:19,750
progressivamente man mano che 
l'utente effettua lo zoom. 

120
00:06:20,630 --> 00:06:22,710
L'adozione della 
clusterizzazione porta diversi 

121
00:06:22,710 --> 00:06:26,390
vantaggi migliori performance, 
diminuisce il numero di marker 

122
00:06:26,390 --> 00:06:29,550
da renderizzare, riduzione 
quindi del carico lato client, 

123
00:06:29,950 --> 00:06:33,150
mappa più leggibile, soprattutto
a livelli di Zoom bassi. 

124
00:06:33,830 --> 00:06:37,550
Esperienza utente migliorata con
Inter relazioni più fluide in 

125
00:06:37,550 --> 00:06:40,070
sostanza, sfruttando il 
clustering dei dati, il peso 

126
00:06:40,070 --> 00:06:42,430
delle operazioni di 
posizionamento e visualizzazione

127
00:06:42,430 --> 00:06:45,030
si riduce drasticamente, 
rendendo l'applicazione più 

128
00:06:45,030 --> 00:06:48,470
efficiente e scalabile. 
Ma adesso entriamo nel mondo 

129
00:06:48,470 --> 00:06:50,430
degli algoritmi che sono 
presenti dietro alla 

130
00:06:50,430 --> 00:06:54,150
clusterizzazione nel contesto. 
La visualizzazione di marker su 

131
00:06:54,150 --> 00:06:56,430
una mappa. 
Il Clustering non è solo un 

132
00:06:56,430 --> 00:06:58,830
concetto astratto, ma viene 
implementato attraverso 

133
00:06:58,830 --> 00:07:02,240
algoritmi ben definiti. 
Tra i più utilizzati in scenari 

134
00:07:02,240 --> 00:07:05,400
reali come questo troviamo 
approcci greed based, distance 

135
00:07:05,400 --> 00:07:09,480
based EK minds, ognuno con 
caratteristiche e casi d'uso 

136
00:07:09,480 --> 00:07:12,830
specifici. 
Nel castering Grid based lo 

137
00:07:12,830 --> 00:07:15,110
spazio geografico viene 
suddiviso in una griglia di 

138
00:07:15,110 --> 00:07:17,670
celle, ad esempio quadrati o 
rettangoli. 

139
00:07:17,990 --> 00:07:20,430
Tutti i punti che ricadono nella
stessa cella vengono 

140
00:07:20,430 --> 00:07:22,670
automaticamente raggruppati in 
un unico cluster. 

141
00:07:23,470 --> 00:07:26,310
Nel caso della mappa, la griglia
può dipendere dal livello di 

142
00:07:26,310 --> 00:07:28,470
zoom. 
Ogni cella rappresenta una 

143
00:07:28,470 --> 00:07:32,030
porzione visibile della mappa. 
I marker all'interno della 

144
00:07:32,030 --> 00:07:35,510
stessa cella vengono mostrati 
come un singolo cluster qu. 

145
00:07:36,000 --> 00:07:38,720
Esto approccio è molto veloce 
perché non richiede il calcolo 

146
00:07:38,720 --> 00:07:41,760
delle distanze tra tutti i 
punti, ma solo l'assegnazione di

147
00:07:41,760 --> 00:07:45,270
ciascun punto ha una cella. 
E l'approccio più usato nelle 

148
00:07:45,270 --> 00:07:47,790
librerie come liflet, punto 
market cluster. 

149
00:07:49,440 --> 00:07:52,520
Nello clustering distance based 
i punti vengono raggruppati in 

150
00:07:52,520 --> 00:07:56,160
base alla distanza geografica 
tra di loro due o più marker 

151
00:07:56,160 --> 00:07:59,600
vengono inseriti nello stesso 
cluster se la loro distanza è 

152
00:07:59,600 --> 00:08:01,200
inferiore a una soglia 
prestabilita. 

153
00:08:02,040 --> 00:08:05,720
Infine il K minds è un algoritmo
de clustering basato su 

154
00:08:05,720 --> 00:08:08,240
centroidi. 
In questo caso si sceglie a 

155
00:08:08,240 --> 00:08:12,200
priori il numero di cluster K 
indicato a ogni punto viene 

156
00:08:12,200 --> 00:08:14,000
assegnato a un centroide più 
vicino. 

157
00:08:14,360 --> 00:08:17,040
I centroidi vengono aggiornati 
iterativamente. 

158
00:08:17,920 --> 00:08:20,480
Nel contesto della mappa, K mis 
può essere usato solo lato 

159
00:08:20,480 --> 00:08:24,000
server e serve per suddividere 
il territorio, aree operative, 

160
00:08:24,040 --> 00:08:26,120
raggruppare interventi per zone 
di competenza. 

161
00:08:26,830 --> 00:08:30,190
Preparare cluster stabili prima 
della visualizzazione questi 

162
00:08:30,190 --> 00:08:33,470
algoritmi permettono di 
migliorare non solo il software,

163
00:08:33,750 --> 00:08:36,950
ma anche la percezione del dato 
di come viene rappresentato. 

164
00:08:38,030 --> 00:08:40,870
Siamo arrivati alla fine di 
questo viaggio, siamo partiti da

165
00:08:40,870 --> 00:08:44,110
qualcosa di apparentemente 
semplice, il dato, un numero, 1 

166
00:08:44,110 --> 00:08:46,870
parola, una posizione sulla 
mappa e abbiamo visto come da 

167
00:08:46,870 --> 00:08:49,830
solo non dica quasi nulla. 
Ma quando i dati diventano 

168
00:08:49,830 --> 00:08:52,990
tanti, quando iniziano a essere 
messi in relazione, confrontati,

169
00:08:52,990 --> 00:08:55,870
raggruppati, allora succede 
qualcosa di interessante, emerge

170
00:08:55,870 --> 00:08:59,590
una struttura, emergono pattern,
comportamenti, informazioni. 

171
00:09:00,070 --> 00:09:02,630
La clusterizzazione è proprio 
questo, un modo, come abbiamo 

172
00:09:02,630 --> 00:09:05,550
detto, per trasformare il caos 
in ordine per. 

173
00:09:05,600 --> 00:09:08,920
Passare da una nuvola indistinta
di punti a gruppi che hanno un 

174
00:09:08,920 --> 00:09:12,160
significato abbiamo visto come 
questo concetto non sia solo 

175
00:09:12,160 --> 00:09:14,000
teorico, ma profondamente 
pratico. 

176
00:09:14,400 --> 00:09:16,440
Lo troviamo nelle mappe che 
usiamo ogni giorno, nelle 

177
00:09:16,440 --> 00:09:19,080
applicazioni reali e nelle 
scelte progettuali che rendono 

178
00:09:19,080 --> 00:09:21,160
un software più veloce, più 
leggibile, più umano. 

179
00:09:21,870 --> 00:09:24,790
Che si tratti di un approccio 
grid based distance base o di un

180
00:09:24,790 --> 00:09:28,230
algoritmo come il K minds, il 
principio rimane lo stesso, non 

181
00:09:28,230 --> 00:09:31,070
stiamo solo visualizzando dati, 
stiamo cercando di capirli. 

182
00:09:31,070 --> 00:09:34,030
E forse è proprio questo il 
messaggio più importante da 

183
00:09:34,030 --> 00:09:36,670
portare a casa. 
Oggi l'informatica non è fatta 

184
00:09:36,670 --> 00:09:40,110
solo di codici algoritmi, ma di 
decisioni su come rappresentare 

185
00:09:40,110 --> 00:09:42,550
la realtà. 
E ogni scelta, anche quella di 

186
00:09:42,550 --> 00:09:45,070
raggruppare dei punti su una 
mappa, racconta un modo di 

187
00:09:45,070 --> 00:09:48,190
interpretare il mondo. 
Grazie per aver ascoltato la 

188
00:09:48,190 --> 00:09:50,910
puntata e come sempre vi aspetto
al prossimo episodio.

