Есть ли у дерева, взятого из Случайных Лесов, эталонное значение? - PullRequest
0 голосов
/ 17 апреля 2019

Я использую scikit-learn в Python для запуска RandomForestClassifier().Поскольку я хочу визуализировать Случайные Леса, чтобы понять корреляцию между различными функциями, я использую export_graphviz() для достижения этой цели.

estimator1 = best_model1.estimators_[0]

from sklearn.tree import export_graphviz
export_graphviz(estimator1, 
                'tree_from_optimized_forest.dot', 
                rounded = True, 
                feature_names=X_train.columns,  
                class_names = ["No", "Yes"], 
                filled = True)

from subprocess import call
call(['dot', '-Tpng', 'tree_from_optimized_forest.dot', '-o', 'tree_from_optimized_forest.png', '-Gdpi=200'])

from IPython.display import Image
Image('tree_from_optimized_forest.png', "w")

Однако, в отличие от Дерева Решений, Случайные Леса будут производить много деревьев, которые зависятна число n_estimators в RandomForestClassifier().

best_model1 = RandomForestClassifier(n_estimators= 100,
                                   criterion='gini',
                                   random_state= 42,
                                   )

Кроме того, поскольку DecisionTreeClassifier() использует все выборки для получения только одного дерева, мы можем непосредственно объяснить результаты этого одиночного дерева.

Напротив, Случайные Леса обучаются создавать несколько разных деревьев, а затем голосовать внутри этих деревьев, чтобы определить результат.Кроме того, содержимое этих деревьев различно, поскольку в Random Forests есть методы Bootstrap, Bagging, Out-of-bag ... и т. Д.

Поэтому я хочу спросить, если я только визуализируюодно из деревьев из результата RandomForestClassifier(), имеет ли это дерево определенное ссылочное значение?

Могу ли я напрямую объяснить содержание этого дерева как результат анализа целых данных?если нет, то является ли DecisionTreeClassifier() единственным способом анализа корреляции между элементами с помощью визуализированного изображения?

Большое спасибо !!

1 Ответ

0 голосов
/ 17 апреля 2019

В машинном обучении всегда существовала такая связь между способностью интерпретации модели и ее сложностью, и ваш пост напрямую связан с этим.

Некоторые из моделей, которые довольно просты, но интенсивно используются для их способности интерпретации, являются деревьями решений, но, поскольку они не достаточно сложны (страдают от предвзятости), они обычно не в состоянии изучить очень сложную функцию,следовательно, люди придумали случайные лесные классификаторы.Случайные леса уменьшают смещение ванильного дерева решений и добавляют больше дисперсии, но, к сожалению, в этом процессе они убрали прямой атрибут интерпретируемой способности.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...