2. Analyse multivariée décrite dans Python 7-1. Arbre de décision (scikit-learn)

** Ici, passons d'abord par un exemple d'arbre de classification. ** **

⑴ Bibliothèque d'importation

#Classe pour construire un modèle d'arbre de décision
from sklearn.tree import DecisionTreeClassifier
#Module basé sur le modèle d'arbre de décision
from sklearn import tree

#Ensemble de données pour l'apprentissage automatique
from sklearn import datasets
#Utilitaire de fractionnement des données
from sklearn.model_selection import train_test_split

#Module pour afficher des images dans Notebook
from IPython.display import Image  
#Module de visualisation du modèle d'arbre de décision
import pydotplus

⑵ Acquisition et lecture de données

iris = datasets.load_iris()
print(iris)
Nom de variable sens Remarque Type de données
1 sepal length La longueur de la pièce Montant continu(cm) float64
2 sepal width Largeur de la pièce Montant continu(cm) float64
3 petal length Longueur des pétales Montant continu(cm) float64
4 petal width Largeur des pétales Montant continu(cm) float64
5 species Type Setosa=1, Versicolour=2, Virginica=3 int64
#Libellé de la variable explicative
print(iris.feature_names)

#Forme variable explicative
print(iris.data.shape)

#Afficher les 5 premières lignes de la variable explicative
iris.data[0:5, :]

2_7_1_01.PNG

#Libellé de la variable d'objectif
print(iris.target_names)

#Forme de la variable objective
print(iris.target.shape)

#Afficher la variable objective
iris.target

2_7_1_02.PNG

(3) Prétraitement des données

#Stocker respectivement les variables explicatives et les variables objectives
X = iris.data
y = iris.target

#Séparé pour la formation et les tests
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

⑷ Construction du modèle et évaluation de l'arbre de décision

#Initialiser la classe qui construit le modèle d'arbre de décision
clf = DecisionTreeClassifier(criterion='gini', max_depth=3, random_state=0)

#Générer un modèle d'arbre de décision
model = clf.fit(X_train, y_train)

#Calculez le taux de réponse correct pour chaque formation et test
print('Taux de réponse correct(train):{:.3f}'.format(model.score(X_train, y_train)))
print('Taux de réponse correct(test):{:.3f}'.format(model.score(X_test, y_test)))

2_7_1_03.PNG

⑸ Dessiner un diagramme en arbre

  1. ** Convertir le modèle d'arbre de décision en données DOT **
  2. ** Dessinez un diagramme à partir des données DOT **
  3. ** Convertir en png et afficher dans Notebook **
#Convertir le modèle d'arbre de décision en données DOT
dot_data = tree.export_graphviz(model,                              #Spécifiez le modèle d'arbre de décision
                                out_file = None,                    #Spécifie de renvoyer une chaîne au lieu d'un fichier de sortie
                                feature_names = iris.feature_names, #Spécifiez le nom d'affichage du montant de la fonction
                                class_names = iris.target_names,    #Spécifiez le nom d'affichage de la classification
                                filled = True)                      #Nœuds de couleur dans la classe majoritaire

#Dessinez un diagramme
graph = pydotplus.graph_from_dot_data(dot_data)  

#Afficher le diagramme
Image(graph.create_png())

2_7_1_04.PNG

Comment lire un diagramme en arbre

2_7_1_05.PNG

Supplément

#Exporter vers un fichier png
graph.write_png("iris.png ")

#Télécharger à partir de google colaboratory
from google.colab import files
files.download('iris.png')

2_7_1_06.PNG

Recommended Posts

2. Analyse multivariée décrite dans Python 7-1. Arbre de décision (scikit-learn)
2. Analyse multivariée expliquée dans Python 7-3. Arbre de décision [arbre de retour]
2. Analyse multivariée expliquée dans Python 7-2. Arbre de décision [différence de critères de division]
2. Analyse multivariée définie dans Python 1-1. Analyse de régression simple (scikit-learn)
2. Analyse multivariée décrite dans Python 2-1. Analyse de régression multiple (scikit-learn)
2. Analyse multivariée expliquée dans Python 3-1. Analyse en composantes principales (scikit-learn)
2. Analyse multivariée expliquée dans Python 8-1. Méthode de voisinage k (scikit-learn)
2. Analyse multivariée définie dans Python 6-2. Régression Ridge / Régression Lasso (scikit-learn) [Régression Ridge vs régression Lasso]
2. Analyse multivariée décrite dans Python 3-2. Analyse en composantes principales (algorithme)
2. Analyse multivariée décrite dans Python 6-1. Régression de crête / Régression de lasso (scikit-learn) [régression multiple vs régression de crête]
2. Analyse multivariée décrite dans Python 1-2. Analyse de régression simple (algorithme)
2. Analyse multivariée décrite dans Python 6-3. Régression Ridge / Régression Lasso (scikit-learn) [Fonctionnement de la régularisation]
2. Analyse multivariée expliquée dans Python 5-3. Analyse de régression logistique (modèles statistiques)
2. Analyse multivariée énoncée dans Python 8-3. Méthode de voisinage K [vérification d'intersection]
2. Analyse multivariée détaillée dans Python 2-3. Analyse de régression multiple [taux d’infection au COVID-19]
2. Analyse multivariée expliquée dans Python 8-2. Méthode de voisinage k [méthode de pondération] [modèle de retour]
Analyse d'association en Python
Analyse de régression avec Python
[Python] Tutoriel personnel sur l'arbre de décision
Analyse de régression simple avec Python
Décision Scikit-learn Générer du code Python à partir de règles d'arbre / forêt aléatoire
Analyse des ondes cérébrales avec Python: tutoriel Python MNE
Première analyse de régression simple en Python
Créer un arbre déterminé avec scikit-learn
[Python] PCA scratch dans l'exemple de "Introduction à la méthode d'analyse multivariée"
Compilateur en Python: arborescence de syntaxe PL / 0
Scikit-learn ne peut pas être installé en Python
Analyse du squelette planaire dans Python (2) Hotfix
Algorithme (arborescence de segments) en Python (s'entraîner)
Régression linéaire en Python (statmodels, scikit-learn, PyMC3)
Arborescence de sortie des fichiers en Python
Dessinez une structure arborescente en Python 3 à l'aide de graphviz
Arborescence de segments retardée en Python (demande de débogage)
Manipuler XML avec des espaces de noms en Python (arbre des éléments)
Analyse résiduelle en Python (Supplément: règles Cochrane)
Analyse de survie apprise avec Python 2 - Estimation Kaplan-Meier
Effectuer une analyse d'entité à l'aide de spaCy / GiNZA en Python
Analyse de données en Python: une note sur line_profiler
[Construction de l'environnement] Analyse des dépendances à l'aide de CaboCha avec Python 2.7
Compilateur en Python: Arbre de syntaxe abstraite PL / 0 (AST)
Créer un arbre de décision à partir de 0 avec Python (1. Présentation)
Environnement enregistré pour l'analyse des données avec Python
Sortie d'une courte chaîne de caractères de type URL en Python