XGBoost Come il Deep Learning può sostituire il Gradient Boosting e gli Alberi di Decisione – Parte 2 Addestramento
XGBoost, Deep Learning sostituisce Gradient Boosting e Alberi di Decisione - Parte 2 Addestramento
Un mondo senza if
In un articolo precedente:
XGBoost: Come il Deep Learning può sostituire Gradient Boosting e gli alberi decisionali – Parte 1
In questo articolo, imparerai a riscrivere gli alberi decisionali utilizzando un approccio di programmazione differenziabile, come proposto…
towardsdatascience.com
hai appreso come riscrivere gli alberi decisionali utilizzando un approccio di programmazione differenziabile, come suggerito dal paper NODE. L’idea di questo paper è di sostituire XGBoost con una rete neurale.
Nello specifico, dopo aver spiegato perché il processo di costruzione degli alberi decisionali non è differenziabile, ha introdotto gli strumenti matematici necessari per regolarizzare i due elementi principali associati a un nodo decisionale:
- Provocatoriamente, i ricercatori di Microsoft affermano di aver trovato scintille di intelligenza artificiale in GPT-4.
- Come costruire un LLM da zero
- Estrazione del testo dai file PDF con Python una guida completa
- Selezione delle caratteristiche
- Rilevamento del ramo
Il paper NODE mostra che entrambi possono essere gestiti utilizzando la funzione entmax.
In sintesi, abbiamo mostrato come creare un albero binario senza utilizzare operatori di confronto.
L’articolo precedente si è concluso con domande aperte riguardanti l’addestramento di un albero decisionale regolarizzato. È ora di rispondere a queste domande.
Se sei interessato a una disamina approfondita sui metodi di Boosting del Gradiente, dai un’occhiata al mio libro:
Practical Gradient Boosting: Un’analisi approfondita del Boosting del Gradiente in Python
Questo libro sui metodi di Boosting del Gradiente è rivolto a studenti, accademici, ingegneri e data scientist che desiderano…
amzn.to
Un nodo decisionale fluido
Prima di tutto, basandoci su ciò che abbiamo presentato nell’articolo precedente, creiamo una nuova classe Python: SmoothBinaryNode
.
Questa classe codifica il comportamento di un nodo binario fluido. Ci sono due parti chiave nel suo codice:
- La selezione delle caratteristiche, gestita dalla funzione
_choices
- La valutazione di queste caratteristiche, rispetto a una soglia data, e l’identificazione del percorso da seguire:
left
oright
. Tutto questo è gestito dai metodileft
eright
.