Partage de technologie

Introduction à l'algorithme d'arbre de décision, aux principes et à la mise en œuvre de cas

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

L'algorithme d'arbre de décision est un algorithme d'apprentissage automatique très populaire qui peut être utilisé pour les tâches de classification et de régression. Ce qui suit est une introduction détaillée à l'algorithme de l'arbre de décision, y compris les principes et les implémentations de cas, ainsi que le code Python correspondant.

Introduction à l'algorithme d'arbre de décision

concept de base

Un arbre de décision est une structure arborescente utilisée pour la classification ou la régression des données. Il se compose de nœuds et d'arêtes, où chaque nœud interne représente un test d'une fonctionnalité, chaque branche représente le résultat du test et chaque nœud feuille représente une catégorie ou une valeur de régression.

Processus de construction

Le processus de construction d’un arbre de décision comprend généralement les étapes suivantes :

  1. Choisissez les meilleures fonctionnalités: Sélectionnez les meilleures fonctionnalités pour diviser l'ensemble de données selon un certain critère (tel que le gain d'information, l'indice de Gini, etc.).
  2. Créer un nœud: divisez l'ensemble de données en utilisant les meilleures fonctionnalités et créez de nouveaux nœuds pour chaque branche.
  3. Construire récursivement des sous-arbres: Le processus de sélection des meilleures fonctionnalités et de fractionnement de l'ensemble de données est répété pour chaque nœud enfant jusqu'à ce qu'une condition d'arrêt soit remplie (telle que la pureté du nœud atteignant un certain niveau ou la profondeur de l'arborescence atteignant une valeur prédéfinie).
  4. Construire des nœuds feuilles: Les nœuds feuilles sont créés lorsque le fractionnement n'est plus nécessaire, généralement l'étiquette de classe majoritaire pour les arbres de classification, ou la moyenne de tous les points de données du sous-ensemble pour les arbres de régression.
critère de partage
  • gain d'informations: Mesure la réduction de l'incertitude dans la classification d'un ensemble de données par une fonctionnalité.
  • Indice de Gini: Mesure la pureté de l'ensemble de données. Plus l'indice de Gini est petit, plus la pureté de l'ensemble de données est élevée.
  • Erreur quadratique moyenne minimale (MSE): Critère de division pour les arbres de régression.

Mise en œuvre du cas

Ce qui suit est un cas de classification d'arbre de décision implémenté à l'aide de Python et de la bibliothèque scikit-learn. Nous utiliserons le célèbre jeu de données Iris, qui contient les caractéristiques et catégories de trois fleurs d'iris (Setosa, Versicolour, Virginica).

1. Préparation des données
  1. from sklearn.datasets import load_iris
  2. from sklearn.model_selection import train_test_split
  3. # 加载数据集
  4. iris = load_iris()
  5. X, y = iris.data, iris.target
  6. # 拆分数据集为训练集和测试集
  7. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
Former un modèle d'arbre de décision
  1. from sklearn.tree import DecisionTreeClassifier
  2. # 初始化决策树分类器
  3. clf = DecisionTreeClassifier()
  4. # 训练模型
  5. clf.fit(X_train, y_train)
Modèle d'évaluation
  1. from sklearn.metrics import accuracy_score
  2. # 预测测试集
  3. y_pred = clf.predict(X_test)
  4. # 计算准确率
  5. accuracy = accuracy_score(y_test, y_pred)
  6. print(f"Accuracy: {accuracy:.2f}")
Arbre de décision visuel
  1. import matplotlib.pyplot as plt
  2. from sklearn.tree import plot_tree
  3. # 可视化决策树
  4. plt.figure(figsize=(12, 12))
  5. plot_tree(clf, filled=True, feature_names=iris.feature_names, class_names=iris.target_names)
  6. plt.show()

Résumer:

Le code ci-dessus montre comment utiliser la bibliothèque scikit-learn pour charger l'ensemble de données Iris, former un classificateur d'arbre de décision, évaluer les performances du modèle et visualiser l'arbre de décision. A travers ce cas, vous pourrez voir comment fonctionne un arbre de décision et comment l'utiliser dans des applications pratiques.

J'espère que vous l'aimerez tous. Si vous l'aimez, n'hésitez pas à l'aimer et à l'enregistrer.