порядок принятия важных функций дерева решений scikit-learn и отношение максимальной глубины выбора - PullRequest
1 голос
/ 12 февраля 2020

Почему порядок значений признаков меняется в зависимости от максимальной глубины, выбранной в классификаторе дерева решений?

Я использовал данные c syntheti, но я не передавал код, потому что он не нужен и долго. Мне просто интересно логика c, стоящая за этим, когда я меняю максимальную глубину, почему меняется порядок важных функций.

dec_tree_clf = tree.DecisionTreeClassifier(max_depth=4, random_state=23, criterion="entropy")   
dec_tree_clf.fit(X_data, y_data)

features    importance  
    z   0.267464  
    n   0.124694  
    y   0.094134  
    c   0.090750  
    i   0.084806
dec_tree_clf = tree.DecisionTreeClassifier(max_depth=3, random_state=23, criterion="entropy")   
dec_tree_clf.fit(X_data, y_data)
features    importance  
    z   0.350545  
    n   0.163426  
    c   0.118939    
    i   0.111149  
    b   0.106650  

1 Ответ

0 голосов
/ 12 февраля 2020

С здесь вы можете видеть, что значение Джини " подсчитывает, сколько раз объект используется для разделения узла, взвешиваясь по количеству выборок, которые он разделяет ".

Если у вас есть функция, которая много разделяет в большом дереве, она, естественно, будет иметь меньше разбиений в коротком дереве, что может изменить важность Джини (иначе как Важность функции (Это то же самое) ). Кроме того, разбиения могут отличаться в дереве с depth=3 по сравнению с деревом с depth=4, что также изменяет важность Джини.

...