[PYTHON] L'arbre.plot_tree de scikit-learn était très simple et pratique, j'ai donc essayé de résumer comment l'utiliser facilement.

La bibliothèque d'apprentissage automatique scikit-learn implémentée en Python est souvent utilisée car elle facilite l'expérimentation de divers algorithmes. .. En parlant de formes de fleurs, TensorFlow et PyTorch sont difficiles à utiliser dans un champ rigide. .. .. Avec un tel scikit-learn, une méthode typique d'apprentissage supervisé «arbre de décision» a été implémentée à partir de la version 0.21.x après l'apprentissage, donc je l'ai essayée en la comparant avec la méthode conventionnelle utilisant GraphViz. C'était.

Méthode de visualisation traditionnelle: Utilisation de GraphViz

Auparavant, j'ai installé et utilisé une autre bibliothèque appelée GraphViz. Cela demande beaucoup de temps et d'efforts. .. ..

Installation de GraphViz@Mac


brew install graphviz
pip install graphviz

Installation de GraphViz@Ubuntu


sudo apt install -y graphviz
pip install graphviz

Méthode utilisant GraphViz


import graphviz
from sklearn import tree

iris = load_iris()
clf = DecisionTreeClassifier()
clf = clf.fit(iris.data, iris.target)

graph = graphviz.Source(tree.export_graphviz(clf, class_names=iris.feature_names, filled=True))
graph

Résultat d'exécution

Le résultat de l'exécution peut être sauvegardé au format PDF en exécutant graph.render ('decision_tree').

graphviz

Utilisez tree.plot_tree

Essayez de dessiner un diagramme similaire à celui dessiné avec GraphViz en utilisant tree.plot_tree. Comme il est stocké dans le module d'arborescence de scikit-learn, aucune installation supplémentaire n'est requise.

tree.plot_Méthode utilisant l'arbre


from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier, plot_tree
import matplotlib.pyplot as plt

iris = load_iris()
clf = DecisionTreeClassifier()
clf = clf.fit(iris.data, iris.target)
iris = load_iris()
plt.figure(figsize=(15, 10))
plot_tree(clf, feature_names=iris.feature_names, filled=True)
plt.show()

Résultat d'exécution

J'ai pu produire le même chiffre que la méthode utilisant GraphViz. Si vous l'exécutez sur Jupyter Notebook, vous pouvez cliquer avec le bouton droit sur le résultat du dessin tel quel et l'enregistrer en tant qu'image.

plot_tree

Résumé

J'ai créé une méthode en utilisant tree.plot_tree de scikit-learn et le GraphViz conventionnel pour la visualisation de l'arbre de décision, et j'ai réalisé que tree.plot_tree est plus facile et plus pratique (que la méthode conventionnelle). Je voudrais l'utiliser activement à l'avenir.

Reference

Recommended Posts

L'arbre.plot_tree de scikit-learn était très simple et pratique, j'ai donc essayé de résumer comment l'utiliser facilement.
J'ai essayé de résumer comment utiliser matplotlib de python
Je n'ai pas compris le redimensionnement de TensorFlow, alors je l'ai résumé visuellement.
J'ai essayé de résumer comment utiliser à nouveau le référentiel EPEL
J'ai essayé de résumer la forme de base de GPLVM
J'ai essayé de résumer comment utiliser les pandas de python
J'ai essayé de résumer les opérations de chaîne de Python
J'ai essayé de gratter YouTube, mais je peux utiliser l'API, alors ne le faites pas.
J'ai essayé de comprendre comment utiliser les pandas et la colinéarité multiple en utilisant l'ensemble de données Affaires comme thème.
Les débutants en Python ont créé un chat BOT alors j'ai essayé de résumer comment le faire
J'ai essayé de faciliter la modification du paramètre du proxy authentifié sur Jupyter
J'ai essayé d'utiliser l'apprentissage en profondeur pour extraire la partie où la plante est montrée de la photo de la véranda, mais cela n'a pas fonctionné, je vais donc résumer le contenu des essais et erreurs. Partie 2
(complexe) Cela dépend de la façon de nommer le coefficient de l'ondelette de morlet, de la valeur de réglage appropriée et du matériau, j'ai donc essayé de l'organiser autant que possible.
[Apprentissage automatique] J'ai essayé de résumer la théorie d'Adaboost
[Acquisition de la qualification] J'ai réussi le niveau LinuC 1, donc j'écrirai sur la façon d'étudier et comment c'était.
J'ai créé une fonction pour découper l'image de python openCV, alors veuillez l'utiliser.
[Linux] J'ai essayé de résumer les commandes de confirmation des ressources
J'ai résumé comment changer les paramètres de démarrage de GRUB et GRUB2
J'ai essayé de résumer la méthode de mise en œuvre fréquemment utilisée de pytest-mock
J'ai essayé d'utiliser du pyenv, que je détestais sans manger, et c'était trop pratique de m'asseoir.
J'ai essayé de créer un site qui permet de voir facilement les informations mises à jour d'Azure
[API Qiita] [Statistiques • Apprentissage automatique] J'ai essayé de résumer et d'analyser les articles publiés jusqu'à présent.
De l'introduction de l'API GoogleCloudPlatform Natural Language à son utilisation
J'ai essayé de résumer jusqu'à ce que je quitte la banque et devienne ingénieur
J'ai essayé de résumer la commande umask
J'ai essayé de visualiser la tranche d'âge et la distribution des taux d'Atcoder
Lorsque j'ai essayé d'exécuter Python, j'ai été ignoré dans le Microsoft Store
Je n'ai pas compris le comportement d'argsort de numpy, donc je vais le résumer
J'ai essayé d'améliorer la précision de mon propre réseau neuronal
J'ai essayé de résumer la modélisation graphique.
J'ai essayé de résumer la manière logique de penser l'orientation objet.
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
[Python] Il était très pratique d'utiliser la classe Python pour le programme ROS.
Comment enregistrer les informations de point caractéristique de l'image dans un fichier et l'utiliser pour la mise en correspondance
Dans IPython, quand j'ai essayé de voir la valeur, c'était un générateur, donc je l'ai inventé quand j'étais frustré.
Je voulais connaître le nombre de lignes dans plusieurs fichiers et j'ai essayé de l'obtenir avec une commande
J'ai essayé de notifier la mise à jour de "Hameln" en utilisant "Beautiful Soup" et "IFTTT"
D'une manière ou d'une autre, le code que j'ai écrit a fonctionné et j'ai été impressionné, alors je vais le poster
P100-PCIE-16GB a été ajouté au GPU de Google Colab avant que je le sache
J'ai essayé d'utiliser Resultoon sur Mac + AVT-C875, mais j'étais frustré en chemin.
Utilisez Pillow pour rendre l'image transparente et en superposer une partie seulement
J'ai essayé de visualiser facilement les tweets de JAWS DAYS 2017 avec Python + ELK
J'ai essayé d'utiliser Google Translate à partir de Python et c'était trop facile
J'ai essayé de récupérer les données de l'ordinateur portable en le démarrant sur Ubuntu
Docker x Visualization ne fonctionnait pas et j'en étais accro, alors je l'ai résumé!
J'ai essayé d'utiliser Twitter Scraper avec AWS Lambda et cela n'a pas fonctionné.
Notez que j'étais accro à la configuration de TensowFlow
J'ai essayé de corriger la forme trapézoïdale de l'image
LeetCode j'ai essayé de résumer les plus simples
Comment installer le détecteur Cascade et comment l'utiliser
J'ai essayé de vectoriser les paroles de Hinatazaka 46!
[Pas de code] J'ai écrit sur les courbes elliptiques et la blockchain dans ma thèse de fin d'études, alors j'ai essayé de résumer la méthode d'étude
linux / c> lien> Obtenir le résultat de l'exécution de la commande shell dans le programme C> On m'a appris à utiliser popen ()
GradCAM avec 22 lignes de code. tf_explain peut être facile à utiliser, je le recommande!
[LPIC 101] J'ai essayé de résumer les options de commande qui sont faciles à faire une erreur
J'ai essayé de notifier la mise à jour de "Devenir romancier" en utilisant "IFTTT" et "Devenir un romancier API"