Я использую 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()
единственным способом анализа корреляции между элементами с помощью визуализированного изображения?
Большое спасибо !!