Python pratique 100 coups J'ai essayé de visualiser l'arbre de décision du chapitre 5 en utilisant graphviz

introduction

J'étudie en utilisant "100 coups de pratique Python". Je pense que ce livre est vraiment bon car vous pouvez étudier l'analyse des données en utilisant des données proches de la situation réelle (bien qu'il y ait en fait beaucoup de données encore pires ...). Dans le chapitre 5 de ce livre, il y a une scène où scikit-learn est utilisé pour l'analyse à l'aide d'un arbre de décision. J'ai donc créé un modèle, mais j'ai essayé de visualiser l'arborescence à l'aide de graphviz, donc je l'ai essayé cette fois.

Lecteurs cibles

Emplacement cible

Python pratique 100 coups -> Chapitre 5 10 coups pour prédire le retrait du client -> Knock 49: Vérifions les variables contributives du modèle

Mon environnement PC

installation de graphviz

Tout d'abord, installez l'unité principale en utilisant homebrew.

brew install graphviz

De plus, installez la bibliothèque pour Python en utilisant pip (anaconda semble pouvoir le faire avec conda).

pip install graphviz

code

1. Comment afficher sur le notebook Jupyter

Tout ce que vous avez à faire est d'ajouter le code suivant. C'est très facile.

from sklearn import tree
import graphviz
dot_data = tree.export_graphviz(model, out_file=None)
graph = graphviz.Source(dot_data)
graph
スクリーンショット 2020-05-06 12.03.57.png

2. Comment créer un fichier

Vous pouvez créer un fichier pdf avec juste quelques modifications du dernier code. Dans cet exemple, "test.pdf" est créé dans le répertoire courant.

from sklearn import tree
import graphviz
dot_data = tree.export_graphviz(model, out_file=None)
graph = graphviz.Source(dot_data)
graph.render('test')

test.png

3. Comment créer un fichier à l'aide du terminal (bonus)

J'ai utilisé la fonction export_graphviz de sklearn.tree pour créer un fichier d'arbre de décision au format de langage DOT et exécuter des commandes système sur le bloc-notes Jupyter.

from sklearn import tree
import graphviz
with open('test.dot', mode='w') as f:
    tree.export_graphviz(model, out_file=f)
!dot -T png test.dot -o test.png

Les références

Cet article a été rédigé en référence aux informations suivantes. Voir ci-dessous pour plus d'informations. 1.10. Arbres de décision (document officiel) sklearn.tree.export_graphviz (également documentation officielle) Essayez l'arbre de décision avec Python: scicit-learn (je l'ai utilisé comme référence)

Recommended Posts

Python pratique 100 coups J'ai essayé de visualiser l'arbre de décision du chapitre 5 en utilisant graphviz
[Python] J'ai essayé de visualiser la relation de suivi de Twitter
La décision de scikit-learn Comment visualiser un modèle en bois
J'ai essayé de visualiser les informations spacha de VTuber
J'ai essayé de résumer les opérations de chaîne de Python
J'ai essayé de résoudre la version 2020 de 100 problèmes de traitement du langage [Chapitre 3: Expressions régulières 20 à 24]
J'ai essayé de visualiser facilement les tweets de JAWS DAYS 2017 avec Python + ELK
J'ai essayé de résoudre la version 2020 de 100 coups de traitement de langue [Chapitre 1: Mouvement préparatoire 00-04]
J'ai essayé de résoudre la version 2020 de 100 traitements linguistiques [Chapitre 1: Mouvement préparatoire 05-09]
J'ai essayé de trouver l'entropie de l'image avec python
[TF] J'ai essayé de visualiser le résultat de l'apprentissage en utilisant Tensorboard
[Python] J'ai essayé de collecter des données en utilisant l'API de wikipedia
J'ai essayé d'obtenir l'index de la liste en utilisant la fonction énumérer
J'ai essayé de créer une expression régulière de "montant" en utilisant Python
J'ai essayé de créer une expression régulière de "temps" en utilisant Python
J'ai essayé de créer une expression régulière de "date" en utilisant Python
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python
J'ai essayé de visualiser la condition commune des téléspectateurs de la chaîne VTuber
[Python] J'ai essayé de visualiser le prix en argent de "ONE PIECE" plus de 100 millions de caractères avec matplotlib.
J'ai essayé de transformer l'image du visage en utilisant sparse_image_warp de TensorFlow Addons
[Python] J'ai essayé de visualiser la nuit du chemin de fer de la galaxie avec WordCloud!
J'ai essayé de visualiser la tranche d'âge et la distribution des taux d'Atcoder
J'ai essayé d'estimer la similitude de l'intention de la question en utilisant Doc2Vec de gensim
J'ai essayé de résoudre 100 traitements linguistiques Knock version 2020 [Chapitre 3: Expressions régulières 25-29]
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
(Python) J'ai essayé d'analyser 1 million de mains ~ J'ai essayé d'estimer le nombre d'AA ~
J'ai essayé d'extraire et d'illustrer l'étape de l'histoire à l'aide de COTOHA
J'ai essayé de vérifier et d'analyser l'accélération de Python par Cython
J'ai essayé de comprendre l'arbre de décision (CART) pour classer soigneusement
J'ai essayé de rationaliser le rôle standard des nouveaux employés avec Python
J'ai essayé de visualiser le texte du roman "Weather Child" avec Word Cloud
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
J'ai essayé de visualiser tous les arbres de décision de la forêt aléatoire avec SVG
J'ai essayé l'histoire courante de l'utilisation du Deep Learning pour prédire la moyenne Nikkei
En utilisant COTOHA, j'ai essayé de suivre le cours émotionnel de la course aux meros.
J'ai essayé d'analyser la carte du Nouvel An par moi-même en utilisant python
vprof - J'ai essayé d'utiliser le profileur pour Python
J'ai essayé de corriger la forme trapézoïdale de l'image
J'ai essayé d'utiliser le module Datetime de Python
J'ai essayé d'utiliser le filtre d'image d'OpenCV
J'ai essayé de vectoriser les paroles de Hinatazaka 46!
Django super introduction par les débutants Python! Partie 2 J'ai essayé d'utiliser les fonctions pratiques du modèle
J'ai essayé de livrer du courrier depuis Node.js et Python en utilisant le service de livraison de courrier (SendGrid) d'IBM Cloud!
J'ai essayé de prédire la détérioration de la batterie lithium-ion en utilisant le SDK Qore
J'ai essayé d'utiliser la bibliothèque Python "pykakasi" qui peut convertir des kanji en romaji.
J'ai essayé d'automatiser le dépôt de 100 yens des courses de chevaux Rakuten (python / sélénium)
J'ai essayé de refactoriser le code de Python débutant (lycéen)
J'ai fait un script pour enregistrer la fenêtre active en utilisant win32gui de Python
J'ai essayé d'envoyer automatiquement la littérature du nouveau virus corona à LINE avec Python
J'ai essayé de représenter graphiquement les packages installés en Python
J'ai essayé de résumer la forme de base de GPLVM
J'ai essayé de résoudre Soma Cube avec python
[Chapitre 5] Introduction à Python avec 100 coups de traitement du langage
J'ai essayé d'approcher la fonction sin en utilisant le chainer
[Chapitre 3] Introduction à Python avec 100 coups de traitement du langage
[Python] J'ai essayé de représenter graphiquement le top 10 des ombres à paupières
J'ai essayé d'utiliser l'API de Sakenowa Data Project
[Chapitre 2] Introduction à Python avec 100 coups de traitement du langage