Widzę, że DecisionTreeClassifier akceptuje kryterium = 'entropia', co oznacza, że musi używać przyrostu informacji jako kryterium podziału drzewa decyzyjnego. Potrzebuję wzmocnienia informacji dla każdej funkcji na poziomie root, kiedy ma zamiar podzielić węzeł główny.Jak uzyskać informacje o zyskach z aplikacji learnTreeClassifier naukowego scikit-learn?
Odpowiedz
Dostęp do wzmocnienia informacji (lub nieczystości gini) można uzyskać tylko w przypadku funkcji, która była używana jako węzeł podziału. Atrybut DecisionTreeClassifier.tree_.best_error[i]
przechowuje entropię podziału i-tego węzła na funkcji DecisionTreeClassifier.tree_.feature[i]
. Jeśli chcesz uzyskać entropię wszystkich przykładów, które osiągną wartość i-tego węzła, zobacz DecisionTreeClassifier.tree_.init_error[i]
.
Aby uzyskać więcej informacji zobacz dokumentację tutaj: https://github.com/scikit-learn/scikit-learn/blob/dacfd8bd5d943cb899ed8cd423aaf11b4f27c186/sklearn/tree/_tree.pyx#L64
Jeśli chcesz uzyskać dostęp do entropii dla każdej funkcji (w pewnym węźle Split) - trzeba zmodyfikować funkcję find_best_split
https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/tree/_tree.pyx#L713
ja nie zdaje sobie sprawę, że na githubie była dokumentacja. Dzięki. –