Max_depth in scikit è l'equivalente della potatura negli alberi delle decisioni?


10

Stavo analizzando il classificatore creato usando un albero decisionale. C'è un parametro di ottimizzazione chiamato max_depth nell'albero decisionale di scikit. Questo equivalente di potatura è un albero decisionale? In caso contrario, come potrei potare un albero decisionale usando scikit?

dt_ap = tree.DecisionTreeClassifier(random_state=1, max_depth=13)
boosted_dt = AdaBoostClassifier(dt_ap, random_state=1)
boosted_dt.fit(X_train, Y_train)

Sono riuscito a implementare la potatura della complessità dei costi sul modello di Sklearn, ed ecco il link: github.com/appleyuchi/Decision_Tree_Prune che potrebbe piacerti.
Appleyuchi,

Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il collegamento come riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. - Dalla recensione
oW_

Risposte:


9

Questo equivalente di potatura è un albero decisionale?

Sebbene abbiano obiettivi simili (ad esempio ponendo alcune restrizioni al modello in modo che non diventi molto complesso e si adatti max_depth troppo ), non è equivalente alla potatura. Il modo in cui di solito funziona la potatura è tornare indietro attraverso l'albero e sostituire i rami che non aiutano con i nodi foglia.

In caso contrario, come potrei potare un albero decisionale usando scikit?

Non è possibile tramite scikit-learn (senza alterare il codice sorgente).
Citazione tratta dalla documentazione dell'albero decisionale : meccanismi come la potatura (attualmente non supportato)

Se vuoi postare la potatura di un albero devi farlo da solo:
puoi leggere questo eccellente post in dettaglio come farlo.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.