Autore: Bruno Sfogliarini – Professore Data Analysis IULM Milano
Un bel pomeriggio di fine luglio del ’79 mi trovai a vagare per una Milano afosa e mezza vuota, dalle parti di Piazzale Martini (zona di Milano che poi avrei vissuto più a fondo quando sarei diventato padre). In quel momento stavo con la testa errando nella terra di mezzo tra il Liceo e l’Università, dato che allora si poteva decidere quasi fino all’ultimo a quale corso di laurea iscriversi. Dopo cinque anni di greco, latino, italiano, storia e filosofia avevo finalmente capito che la mia strada svoltava verso la scienza più che non l’umanesimo…e così finii davanti a una biblioteca comunale in cui non ero mai entrato. Indeciso tra Geologia e Matematica, scorsi gli scaffali dei libri ben riposti e ordinati fino a che mi imbattei in un volumetto dal titolo esplicitamente promettente: “Come risolvere i problemi di matematica” di tal Polya (pubblicato nel 1945). Detto fatto, passai una bella oretta in un banco della sala lettura con carta e penna (rigorosamente la prima a quadretti, la seconda stilografica…) a risolvere tutti i problemi proposti dall’Autore seguendo le sue indicazioni, devo dire con completo successo.
Bene, in quell’ora volata via così in fretta si decisero il mio corso di studi, la mia professione, gran parte della mia forma mentale, il mio stile di insegnamento e la mia fonte di reddito. Da allora, in segno di rispetto e di ringraziamento porto sempre con me una copia (prima cartacea, poi su cd, ora in pdf) del libro che, tra le altre cose, ha fondato il metodo moderno per insegnare la matematica. Ma che ci azzecca un vecchio manualetto di logica ed euristica con i giorni nostri, affacciati su un mondo pervaso dall’intelligenza artificiale? Ci azzecca, ci azzecca…
Oggi il problema più frequente da risolvere è, correggetemi se sbaglio, “come estrarre valore dai Big Data con il Machine Learning”. Così come Polya rese disponibile al mondo un processo perfettamente funzionante e universale per risolvere i problemi di matematica, allo stesso modo la comunità della Data Science dispone di un processo generale per distillare insight e generare azioni che producano valore.
Questo processo prevede quattro fasi analitiche, che riportiamo di seguito insieme alle relative implementazioni tipiche:
- Descrizione: cosa succede? Dashboard di statistiche, KPI, benchmark, alert
- Diagnosi: perché succede? Analisi Drill-down delle statistiche, correlazioni, associazioni, …
- Previsione: cosa succederà? Modellazione con algoritmo di ML
- Prescrizione: cosa dobbiamo fare? Simulazioni What-if sui modelli della fase precedente
Dando per scontati gli strumenti utilizzati nelle prime due fasi, vale la pena per un attimo concentrarsi sulle altre due e cioè sul dinamico mondo degli algoritmi di Machine Learning. Per illustrarne la ricchezza riportiamo lo schema guida per la scelta dell’algoritmo ML in base alla struttura specifica della previsione da produrre, come pubblicato da Microsoft per la propria piattaforma Azure Machine Learning.
Se per esempio dobbiamo prevedere in anticipo l’abbandonismo (churn detection), potremo utilizzare un algoritmo di classificazione binario tra quelli del box in basso a destra.
Insomma in trent’anni sono cambiati i tipi di problemi e gli strumenti per risolverli ma NON è cambiato il metodo per affrontarli: seguire un processo formalizzato e rigoroso che ci guidi passo per passo con pazienza e fiducia fino alla soluzione tanto agognata. Qualcuno potrebbe chiedersi: ma ne vale veramente la pena, oppure non è più pratico passare subito all’applicazione dell’apprendimento automatico?
Per rispondere a quest’ultima domanda sfrutto due citazioni proprio di Polya, che poi collegherò tra loro.
“Risolvere un problema significa trovare una strada per uscire da una difficoltà, una strada per aggirare o superare un ostacolo, per raggiungere uno scopo che non sia immediatamente raggiungibile. In generale un desiderio può condurre ad un problema oppure no. Se un desiderio fa venire subito in mente, senza alcuna difficoltà, qualche azione ovvia che verosimilmente ci fa ottenere l’oggetto desiderato non c’è problema. Se invece non viene in mente nessuna di tali azioni, ecco il problema. Quindi avere un problema significa: cercare coscientemente un’azione appropriata per ottenere uno scopo chiaramente concepito ma non immediatamente ottenibile. Trovare tale azione (o tali azioni) porta a risolvere il problema”
“Una grande scoperta risolve un grande problema, ma nella soluzione di qualsiasi problema c’è un pizzico di scoperta. Il tuo problema può essere modesto, ma se stimola la tua curiosità, tira in ballo la tua inventiva e lo risolvi con i tuoi mezzi, puoi sperimentare la tensione e gioire del trionfo della scoperta”.
In sintesi, risolvere problemi stanca ma ne vale sempre la pena.
Commenti recenti