GradientBoostingClassifier如何export_tree?
How to export_tree for GradientBoostingClassifier?
此代码适用于 DecisionTreeClassifier。
r = export_text(tree2, feature_names=fn)
print(r)
对于 RandomForestClassifier
from sklearn.tree import export_text
print(export_text(tree3.estimators_[0],
spacing=3, decimals=3,
feature_names=fn))
但是,GradientBoostingClassifier 没有起作用。
AttributeError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_1840/2106124489.py in <module>
1 from sklearn.tree import export_text
----> 2 r = export_text(tree4, feature_names=fn)
3 print(r)
~\anaconda\anaconda3\lib\site-packages\sklearn\utils\validation.py in inner_f(*args, **kwargs)
61 extra_args = len(args) - len(all_args)
62 if extra_args <= 0:
---> 63 return f(*args, **kwargs)
64
65 # extra_args > 0
~\anaconda\anaconda3\lib\site-packages\sklearn\tree\_export.py in export_text(decision_tree, feature_names, max_depth, spacing, decimals, show_weights)
875 """
876 check_is_fitted(decision_tree)
--> 877 tree_ = decision_tree.tree_
878 if is_classifier(decision_tree):
879 class_names = decision_tree.classes_
AttributeError: 'GradientBoostingClassifier' object has no attribute 'tree_'
有没有办法在 GradientBoostingClassifier 中显示 export_tree?
您可以查看 GradientBoostingClassifier (GBC) 的基础决策树,而不是 GBC 本身。
假设您的 GBC 模型是 mdl
mdl = GradientBoostingClassifier(n_estimators=100, max_depth=5)
您可以 select 一棵树并查看它
from pydotplus import graph_from_dot_data
from sklearn.tree import export_graphviz
from IPython.display import Image
gbc_sub_tree = mdl.estimators_[10, 0]
graph_data = export_graphviz(gbc_sub_tree, out_file=None, rounded=True, proportion=False, impurity=False)
tree_graph = graph_from_dot_data(graph_data)
Image(tree_graph.create_png())
此代码适用于 DecisionTreeClassifier。
r = export_text(tree2, feature_names=fn)
print(r)
对于 RandomForestClassifier
from sklearn.tree import export_text
print(export_text(tree3.estimators_[0],
spacing=3, decimals=3,
feature_names=fn))
但是,GradientBoostingClassifier 没有起作用。
AttributeError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_1840/2106124489.py in <module>
1 from sklearn.tree import export_text
----> 2 r = export_text(tree4, feature_names=fn)
3 print(r)
~\anaconda\anaconda3\lib\site-packages\sklearn\utils\validation.py in inner_f(*args, **kwargs)
61 extra_args = len(args) - len(all_args)
62 if extra_args <= 0:
---> 63 return f(*args, **kwargs)
64
65 # extra_args > 0
~\anaconda\anaconda3\lib\site-packages\sklearn\tree\_export.py in export_text(decision_tree, feature_names, max_depth, spacing, decimals, show_weights)
875 """
876 check_is_fitted(decision_tree)
--> 877 tree_ = decision_tree.tree_
878 if is_classifier(decision_tree):
879 class_names = decision_tree.classes_
AttributeError: 'GradientBoostingClassifier' object has no attribute 'tree_'
有没有办法在 GradientBoostingClassifier 中显示 export_tree?
您可以查看 GradientBoostingClassifier (GBC) 的基础决策树,而不是 GBC 本身。
假设您的 GBC 模型是 mdl
mdl = GradientBoostingClassifier(n_estimators=100, max_depth=5)
您可以 select 一棵树并查看它
from pydotplus import graph_from_dot_data
from sklearn.tree import export_graphviz
from IPython.display import Image
gbc_sub_tree = mdl.estimators_[10, 0]
graph_data = export_graphviz(gbc_sub_tree, out_file=None, rounded=True, proportion=False, impurity=False)
tree_graph = graph_from_dot_data(graph_data)
Image(tree_graph.create_png())