Gradient Boosting dalla Teoria alla Pratica (Parte 2)
Gradient Boosting Theory to Practice (Part 2)
Utilizzare le classi di boosting del gradient in Scikit-Learn per risolvere differenti problemi di classificazione e regressione
Nella prima parte di questo articolo, abbiamo presentato l’algoritmo di boosting del gradient e mostrato la sua implementazione in pseudocodice.
In questa parte dell’articolo, esploreremo le classi in Scikit-Learn che implementano questo algoritmo, discuteremo i loro vari parametri e mostreremo come utilizzarle per risolvere diversi problemi di classificazione e regressione.
Sebbene la libreria XGBoost (che verrà trattata in un futuro articolo) fornisca un’implementazione del boosting del gradient più ottimizzata e altamente scalabile, per set di dati di piccole o medie dimensioni è spesso più semplice utilizzare le classi di boosting del gradient in Scikit-Learn, che hanno un’interfaccia più semplice e un numero significativamente inferiore di iperparametri da ottimizzare.
Boosting del Gradient in Scikit-Learn
Scikit-Learn fornisce le seguenti classi che implementano il modello di alberi decisionali boostati dal gradient (GBDT):
- Data Science Accelerato ChatGPT Code Interpreter come tuo assistente AI
- Le 50 migliori domande di intervista sull’AI con relative risposte
- Questo articolo sull’IA mostra come la tossicità di ChatGPT può aumentare fino a sei volte quando viene assegnata una personalità
- GradientBoostingClassifier viene utilizzata per problemi di classificazione.
- GradientBoostingRegressor viene utilizzata per problemi di regressione.
Oltre ai parametri standard degli alberi decisionali, come criterion, max_depth (impostato per default a 3) e min_samples_split, queste classi forniscono i seguenti parametri:
- loss — la funzione di perdita da ottimizzare. In GradientBoostingClassifier, questa funzione può essere ‘log_loss’ (impostazione predefinita) o ‘exponential’ (che farà sì che il boosting del gradient si comporti come l’algoritmo AdaBoost). In GradientBoostingRegressor, questa funzione può essere ‘squared_loss’ (impostazione predefinita), ‘absolute_loss’, ‘huber’ o ‘quantile’.
- n_estimators — il numero di iterazioni di boosting (impostato per default a 100).
- learning_rate — un fattore che riduce il contributo di ogni albero (impostato per default a 0.1).
- subsample — la frazione di campioni da utilizzare per l’addestramento di ogni albero (impostata per default a 1.0).
- max_features — il numero di feature da considerare durante la ricerca della migliore divisione in ogni nodo. Le opzioni sono specificare un numero intero per il…