Tree-Based ML: Random Forest, Gradient Boosting
Oggi giorno assistiamo alla disponibilità di una grande mole di dati, dovuta principalmente all’avvento su larga scala dei computer e alla conseguente digitalizzazione di gran parte di processi aziendali, terapie mediche, fenomeni fisici etc. Ciò ha contribuito ad un notevole interesse verso tecniche di analisi dati e Data Mining, per estrarre informazioni. In particolare, uno dei campi più in auge al momento è quello del Machine Learning: algoritmi matematici che permettono di processare moltissime informazioni, fornendo previsioni spesso molto accurate. Nella vasta gamma di modelli di Machine Learning, tra i più noti ricordiamo le Reti Neurali, modelli basati sui Kernel (SVM, Kernel Regression, etc) e modelli basati su Alberi Decisionali. In questo corso parleremo approfonditamente dei modelli basati sugli Alberi Decisionali. La prima parte del corso si focalizzerà sul modello matematico di base: analizzeremo l’idea degli Alberi Decisionali sia in contesti di regressione sia in classificazione. Verrà mostrato il funzionamento dal punto di vista algoritmico (mostrando le formule matematiche per permettono di ottenere una buona previsione) e mostrando l’importante intuizione geometrica che sta alla base di tutto il Machine Learning e quindi anche dei modelli basati su Alberi. Nella seconda parte tratteremo tipologie di modelli più complessi, partendo dal Bagging (Boostrap AGGRegating). Questo metodo costituisce la base dei modelli Random Forest, esaminati nel seguito. Infine ci concentreremo sui modelli di Gradient Boosting che utilizzano come base learner i Decision Tree. La parte teorica comprende slides che spiegano nel dettaglio il funzionamento matematico, e illustrazioni (create tramite codice Python e R) per mostrare il funzionamento delle formule illustrate e come questi modelli siano in grado di approssimare potenzialmente ogni superficie sul piano geometrico (teorema di approssimazione universale, valido anche per le Reti Neurali). Ogni argomento verrà anche illustrato tramite Notebook scritti in linguaggio Python, mostrando in maniera semplice e concisa come allenare tutti i modelli trattati e spiegando quali siano le “best practices”. L’unico prerequisito richiesto è una conoscenza base di Python, è utile (ma assolutamente non necessaria) una conoscenza sommaria dei concetti base dei modelli di previsione (Machine Learning).