2017-07-07 4 views
1

J'ai formé un gradient boost classifier, et je voudrais le visualiser en utilisant l'outil graphviz_exporter montré here.Comment visualiser un sklearn GradientBoostingClassifier?

Quand je l'essayer je reçois:

AttributeError: 'GradientBoostingClassifier' object has no attribute 'tree_' 

c'est parce que le graphviz_exporter est destiné à decision trees, mais je suppose qu'il ya toujours un moyen de le visualiser, depuis le classificateur boost gradient doit avoir un arbre de décision sous-jacente .

Est-ce que quelqu'un sait comment faire cela?

+1

Avez-vous essayé d'utiliser XGBoost [link] (http://machinelearningmastery.com/visualize-gradient-boosting-decision-trees-xgboost-python/)? – sera

+0

Merci de m'avoir présenté à la bibliothèque XGBoost. Je vais lui donner un contrôle, bien que j'ai trouvé comment le faire en utilisant sklearn –

Répondre

3

Les estimateurs d'attribut contiennent les arbres de décision sous-jacents. Le code suivant affiche l'un des arbres d'un GradientBoostingClassifier qualifié.

clf = GradientBoostingClassifier(
    n_estimators=200, 
    learning_rate=1.0, 
    max_depth=3, 
    random_state=42 
) 
clf = clf.fit(X[:600], Y[:600]) 


# Get the tree number 42 
sub_tree_42 = clf.estimators_[42, 0] 

dot_data = tree.export_graphviz(
    sub_tree_42, 
    out_file=None, filled=True, 
    rounded=True, 
    special_characters=True, 
    proportion=True, 
) 
graph = pydotplus.graph_from_dot_data(dot_data) 
Image(graph.create_png()) 
+2

Oui, mais dans ce cas, vous avez 200 estimateurs. Il n'est donc pas pratique ou utile d'imprimer 200 arbres pour le comprendre. [Voir ceci] (https://arogozhnikov.github.io/2016/06/24/gradient_boosting_explained.html) pour une meilleure compréhension. –

+0

Merci, cette page est vraiment utile pour moi de mieux comprendre l'ensemble du concept –