Vedo che DecisionClassifier accetta il criterio = 'entropia', il che significa che deve utilizzare il guadagno di informazioni come criterio per dividere l'albero decisionale. Quello di cui ho bisogno è il guadagno di informazioni per ogni funzionalità a livello di root, quando si sta per suddividere il nodo radice.Come ottenere il guadagno di informazioni da un DecisionTeamClassifier di sciencekit?
risposta
È possibile accedere al guadagno di informazioni (o impurità di gini) solo per una funzione che è stata utilizzata come nodo di divisione. L'attributo DecisionTreeClassifier.tree_.best_error[i]
contiene l'entropia della divisione del nodo i-esimo sulla funzione DecisionTreeClassifier.tree_.feature[i]
. Se vuoi l'entropia di tutti gli esempi che raggiungono il nodo i-esimo guarda su DecisionTreeClassifier.tree_.init_error[i]
.
Per ulteriori informazioni consultare la documentazione qui: https://github.com/scikit-learn/scikit-learn/blob/dacfd8bd5d943cb899ed8cd423aaf11b4f27c186/sklearn/tree/_tree.pyx#L64
Se si desidera accedere l'entropia per ogni caratteristica (ad un certo nodo split) - è necessario modificare la funzione find_best_split
https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/tree/_tree.pyx#L713
non l'ho fatto rendersi conto che c'era una documentazione sul github. Grazie. –