[PYTHON] Visualisez l'arbre de décision scikit-learn avec Treemap de Plotly

cette

image.png

Faites ceci: ange:

image.png

manière

Visualisez avec plot_tree

Tout d'abord, créez un arbre de décision normalement et visualisez-le avec plot_tree.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer
from sklearn.tree import DecisionTreeClassifier, plot_tree

data = load_breast_cancer()
X, y = data['data'], data['target']
feature_names = data['feature_names']

model = DecisionTreeClassifier(criterion='entropy').fit(X,y)

plt.figure(figsize=(12, 4), dpi=200)
plot_tree(model, feature_names=feature_names, filled=True)
plt.show()

image.png

c'est normal.

Visualisez avec Treemap

Ensuite, démontons l'arbre de décision que nous avons créé et visualisons-le avec Treemap.

import plotly.graph_objects as go

labels = [''] * model.tree_.node_count
parents = [''] * model.tree_.node_count
labels[0] = 'root'
for i, (f, t, l, r) in enumerate(zip(
    model.tree_.feature,
    model.tree_.threshold,
    model.tree_.children_left,
    model.tree_.children_right,
)):
    if l != r:
        labels[l] = f'{feature_names[f]} <= {t:g}'
        labels[r] = f'{feature_names[f]} > {t:g}'
        parents[l] = parents[r] = labels[i]

fig = go.Figure(go.Treemap(
    branchvalues='total',
    labels=labels,
    parents=parents,
    values=model.tree_.n_node_samples,
    textinfo='label+value+percent root',
    marker=dict(colors=model.tree_.impurity),
    customdata=list(map(str, model.tree_.value)),
    hovertemplate='''
<b>%{label}</b><br>
impurity: %{color}<br>
samples: %{value} (%{percentRoot:%.2f})<br>
value: %{customdata}'''
))
fig.show()

image.png

Les nœuds écrasés et invisibles peuvent être vus en cliquant sur un secteur.

image.png

la fin

Contrairement à plot_tree, vous ne pouvez pas colorer chaque classe, il peut donc être difficile à utiliser sans classification binaire ou régression: sueur_smile:

Les références

Recommended Posts

Visualisez l'arbre de décision scikit-learn avec Treemap de Plotly
Visualisez l'arbre de décision avec le notebook Jupyter
Visualisez les résultats des arbres de décision réalisés avec Python scikit-learn
Créer un arbre déterminé avec scikit-learn
Prédire l'avenir avec l'apprentissage automatique - Prédire les cours futurs des actions avec l'arbre de décision de scikit-learn
J'ai essayé de visualiser tous les arbres de décision de la forêt aléatoire avec SVG
Isomap avec Scikit-learn
DBSCAN avec scikit-learn
Clustering avec scikit-learn (1)
Clustering avec scikit-learn (2)
PCA avec Scikit-learn
kmeans ++ avec scikit-learn
Validation croisée avec scikit-learn
Visualisez rapidement avec les pandas
SVM multi-classes avec scikit-learn
Clustering avec scikit-learn + DBSCAN
Apprentissage Scikit-Learn avec la chimioinfomatique
Visualisez les réclamations avec l'IA
Visualisez le nem 2019 avec WordCloud
DBSCAN (clustering) avec scikit-learn
Installez scikit.learn avec pip
Calculer tf-idf avec scikit-learn
[Apprentissage automatique] Comprendre les arbres de décision de scikit-learn et des mathématiques