Lire un arbre
Fait partie de la section Apprentissage supervisé du Journey Machine Learning de Coddy. Leçon 28 sur 58.
Les questions d’un arbre sont lisibles, vous pouvez donc vérifier ce qu’il a appris. Suivez une fleur de 5.1 cm de long et de 1.6 cm de large dans l’arbre d’iris :
export_text affiche les mêmes questions sous forme de texte, avec une indentation par niveau :
from sklearn.tree import export_text
print(export_text(tree, feature_names=["petal_length", "petal_width"]))Cela affiche :
|--- petal_width <= 0.80
| |--- class: 0
|--- petal_width > 0.80
| |--- petal_length <= 4.95
| | |--- class: 1
| |--- petal_length > 4.95
| | |--- class: 2Chaque ligne répond uniquement aux questions sur son propre chemin. La classe 2 correspond à virginica, une réponse sensée pour des pétales longs et larges.
Défi
MoyenL’arbre d’une fromagerie classe un fromage comme frais, à pâte molle ou à pâte dure, en fonction de sa teneur en eau et de ses semaines d’affinage. Le code de départ l’entraîne et évalue un nouveau fromage.
- Affiche les questions de l’arbre avec les noms des caractéristiques.
- Exécute-le, lis les questions et complète
by_handpour qu’il pose les mêmes questions avec if/else et renvoie la même réponse.
Après l’affichage, pour un fromage que l’arbre classe comme à pâte molle :
By hand: soft
The tree: softEssayez vous-même
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, export_text
# Une ligne par fromage : teneur en eau (%), semaines d’affinage et type de fromage
cheeses = pd.read_csv("cheeses.csv")
features = ["moisture_pct", "aged_weeks"]
X_train, X_test, y_train, y_test = train_test_split(cheeses[features], cheeses["cheese"], test_size=0.25, random_state=0)
tree = DecisionTreeClassifier(max_depth=2, random_state=0)
tree.fit(X_train, y_train)
# Un nouveau fromage à nommer
moisture = int(input())
aged = int(input())
new_cheese = pd.DataFrame([[moisture, aged]], columns=features)
# Écrivez votre code ci-dessous : affichez l’arbre, puis donnez la même réponse que lui dans by_hand
def by_hand(moisture, aged):
return "fresh"
# Ne modifiez pas les lignes ci-dessous
print("By hand:", by_hand(moisture, aged))
print("The tree:", tree.predict(new_cheese)[0])
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Apprentissage supervisé
1Votre premier modèle
Apprendre à partir d’exemplesJeux d’entraînement et de testAjuster et prédireÉvaluer un modèleRécapitulatif : trieur de graines4Régression logistique
Prédictions oui ou nonLe seuil de décisionLes poids comme indicesPlusieurs classesRécapitulatif : filtre anti-spam2Plus proches voisins
Comment k-NN prend ses décisionsChoisir kFrontières de décisionMettre les voisins à l’échelleRécapitulatif : voisins et vin5Évaluer les classificateurs
La matrice de confusionPrécision et rappelLe score F1Classes déséquilibréesCourbes ROCRécapitulatif : test de dépistage8Validation croisée
Validation K-foldComparer les modèles équitablementRecherche par grilleRécapitulatif : réparations de skateboard11Projet : espèces de manchots
À la rencontre des manchotsPréparer les donnéesChoisir un modèleOptimiser le modèle gagnantDéployer le modèle3Régression linéaire
Prédire des nombresPlusieurs caractéristiquesMesurer les erreursGraphiques des résidusRécapitulatif : locations de vélos6Arbres de décision
Les arbres posent des questionsLire un arbreProfondeur de l’arbreImportance des caractéristiquesRécapitulatif : décisions de prêtEntraînez-vous par vous-même : Compilateur Python en ligne