Я вижу, что DecisionTreeClassifier принимает критерий = 'энтропия', что означает, что он должен использовать коэффициент усиления информации в качестве критерия для разделения дерева решений. Мне нужна информация для каждой функции на корневом уровне, когда она собирается разбить корень node.
Как получить информацию о выигрыше от scikit-learn DecisionTreeClassifier?
Ответ 1
Вы можете получить доступ к информации (или примеси gini) для функции, которая использовалась как разделение node. Атрибут DecisionTreeClassifier.tree_.best_error[i]
содержит энтропию i-го node расщепления по функции DecisionTreeClassifier.tree_.feature[i]
. Если вы хотите, чтобы энтропия всех примеров достигла i-го node, просмотрите DecisionTreeClassifier.tree_.init_error[i]
.
Для получения дополнительной информации см. документацию здесь: https://github.com/scikit-learn/scikit-learn/blob/dacfd8bd5d943cb899ed8cd423aaf11b4f27c186/sklearn/tree/_tree.pyx#L64
Если вы хотите получить доступ к энтропии для каждой функции (при определенном расколе node) - вам нужно изменить функцию find_best_split
https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/tree/_tree.pyx#L713