DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»AI Zone»Une introduction aux arbres de décision pour l’apprentissage automatique
    AI Zone

    Une introduction aux arbres de décision pour l’apprentissage automatique

    novembre 21, 2022
    Une introduction aux arbres de décision pour l'apprentissage automatique
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Arbres de décision dans l’apprentissage automatique

    Les algorithmes modernes d’apprentissage automatique révolutionnent notre vie quotidienne. Par exemple, de grands modèles de langage comme BERT alimentent la recherche Google, et GPT-3 alimente de nombreuses applications linguistiques avancées.

    Aujourd’hui, la création d’algorithmes complexes d’apprentissage automatique est plus facile que jamais. Cependant, quelle que soit la complexité d’un algorithme d’apprentissage automatique, il relève de l’une des catégories d’apprentissage suivantes :

    • Enseignement supervisé
    • Apprentissage non supervisé
    • Apprentissage semi-supervisé
    • Apprentissage par renforcement

    Les arbres de décision sont l’un des plus anciens algorithmes d’apprentissage automatique supervisé qui résolvent un large éventail de problèmes du monde réel. Des études suggèrent que la première invention d’un algorithme d’arbre de décision remonte à 1963.

    Plongeons-nous dans les détails de cet algorithme pour voir pourquoi cette classe d’algorithmes est toujours populaire aujourd’hui.

    Qu’est-ce qu’un arbre de décision ?

    L’algorithme d’arbre de décision est un algorithme d’apprentissage automatique supervisé populaire pour son approche simple du traitement d’ensembles de données complexes. Les arbres de décision tirent leur nom de leur ressemblance avec un arbre qui comprend des racines, des branches et des feuilles sous forme de nœuds et d’arêtes. Ils sont utilisés pour l’analyse de décision, un peu comme un organigramme de décisions basées sur le cas échéant qui conduisent à la prédiction requise. L’arbre apprend ces règles de décision if-else pour diviser l’ensemble de données afin de créer un modèle arborescent.

    Les arbres de décision trouvent leur utilisation dans la prédiction de résultats discrets pour les problèmes de classification et de résultats numériques continus pour les problèmes de régression. Il existe de nombreux algorithmes différents développés au fil des ans, comme CART, C4.5 et des ensembles, tels que la forêt aléatoire et les arbres boostés par gradient.

    exemple d'arbre de décision

    Disséquer les divers composants de l’arbre de décision

    L’objectif d’un algorithme d’arbre de décision est de prédire un résultat à partir d’un ensemble de données d’entrée. L’ensemble de données de l’arbre se présente sous la forme d’attributs, de leurs valeurs et des classes à prédire. Comme tout algorithme d’apprentissage supervisé, l’ensemble de données est divisé en ensembles d’apprentissage et de test. L’ensemble d’apprentissage définit les règles de décision que l’algorithme apprend et applique à l’ensemble de test.

    Avant d’entrer dans les étapes d’un algorithme d’arbre de décision, passons en revue les composants d’un arbre de décision :

    • Noeud principal: C’est le nœud de départ en haut de l’arbre de décision qui contient toutes les valeurs d’attribut. Le nœud racine se divise en nœuds de décision en fonction des règles de décision apprises par l’algorithme.
    • Bifurquer: Les branches sont des connecteurs entre les nœuds qui correspondent aux valeurs des attributs. Dans les divisions binaires, les branches indiquent les vrais et les faux chemins.
    • Nœuds de décision/Nœuds internes : Les nœuds internes sont des nœuds de décision entre le nœud racine et les nœuds feuille qui correspondent aux règles de décision et à leurs chemins de réponse. Les nœuds indiquent les questions et les branches affichent les chemins en fonction des réponses pertinentes à ces questions.
    • Nœuds feuilles : Les nœuds feuilles sont des nœuds terminaux qui représentent la prédiction cible. Ces nœuds ne se divisent plus.

    Voici une représentation visuelle d’un arbre de décision et de ses composants mentionnés ci-dessus :

    Un algorithme d’arbre de décision passe par les étapes suivantes pour atteindre la prédiction requise :

    • L’algorithme commence au nœud racine avec toutes les valeurs d’attribut.
    • Le nœud racine se divise en nœuds de décision en fonction des règles de décision que l’algorithme a apprises à partir de l’ensemble d’apprentissage.
    • Passer par des nœuds de décision internes via des branches/périphéries en fonction des questions et de leurs chemins de réponse.
    • Continuez les étapes précédentes jusqu’à ce que les nœuds feuilles soient atteints ou jusqu’à ce que tous les attributs aient été utilisés.

    Pour sélectionner le meilleur attribut à chaque nœud, le fractionnement est effectué selon l’une des deux métriques de sélection d’attribut :

    • Indice de Gini mesure l’impureté de Gini pour indiquer la probabilité de l’algorithme d’une mauvaise classification des étiquettes de classe aléatoires.
    • Gain d’informations mesure l’amélioration de l’entropie après la division pour éviter une division 50/50 des classes de prédiction. Entropie est une mesure mathématique des impuretés dans un échantillon de données donné. chaos dans l’arbre de décision indiqué par une répartition presque 50/50.

    Tutoriel de classification des fleurs avec algorithme d’arbre de décision

    Avec les bases mentionnées ci-dessus à l’esprit, passons à la mise en œuvre. Pour cet article, nous allons implémenter un modèle de classification d’arbre de décision en Python à l’aide de la bibliothèque Scikit-learn.

    À propos de l’ensemble de données : L’ensemble de données de ce didacticiel est un ensemble de données de fleurs d’iris. Scikit apprend que la bibliothèque de jeux de données possède déjà ce jeu de données, donc pas besoin de le charger en externe. Cet ensemble de données comprend quatre attributs d’iris et leurs valeurs qui seront entrées pour prédire l’un des trois types de fleurs d’iris.

    • Attributs/caractéristiques dans l’ensemble de données : Longueur des sépales, largeur des sépales, longueur des pétales, largeur des pétales.
    • Étiquettes de prédiction/types de fleurs dans l’ensemble de données : Setosis, Versicolor, Virginica.

    Voici un tutoriel étape par étape pour l’implémentation python d’un classificateur d’arbre de décision :

    Importation de bibliothèques

    Pour commencer, le morceau de code suivant importe les bibliothèques requises pour effectuer l’implémentation de l’arbre de décision.

    import pandas as pd
    import numpy as np
    from sklearn.datasets import load_iris
    from sklearn.model_selection import train_test_split
    from sklearn.tree import DecisionTreeClassifier

    Chargement du jeu de données Iris

    Le code suivant utilise la fonction load_iris pour charger l’ensemble de données iris à partir de la bibliothèque sklearn.dataset dans la variable data_set. Imprimez les types d’iris et les caractéristiques dans les deux lignes suivantes.

    data_set = load_iris()
    print('Iris plant classes to predict: ', data_set.target_names)
    
    print('Four features of iris plant: ', data_set.feature_names)

    arbre de décision surface de décision

    Séparer les attributs et les étiquettes

    Les lignes de code suivantes séparent les caractéristiques et les types de fleurs et les stockent dans des variables. La forme[0] fonction détermine le nombre d’attributs stockés dans le X_att variable. Le nombre total de valeurs d’attributs dans notre jeu de données est de 150.

    #Extracting data attributes and labels
    X_att = data_set.data
    y_label = data_set.target
    print('Total examples in the dataset:', X_att.shape[0])

    Nous pouvons également créer une visualisation de tableau pour une partie des valeurs d’attribut dans l’ensemble de données en ajoutant des valeurs dans le X_att variable à un Trame de données fonction de la pandas bibliothèque.

    data_view=pd.DataFrame({
        'sepal length':X_att[:,0],
        'sepal width':X_att[:,1],
        'petal length':X_att[:,2],
        'petal width':X_att[:,3],
        'species':y_label
    })
    
    data_view.head()

    Fractionner l’ensemble de données

    Le code suivant divise l’ensemble de données en ensembles d’apprentissage et de test à l’aide de la propriété train_test_split fonction. La état_aléatoire Le paramètre dans cette fonction est utilisé pour donner une graine aléatoire à la fonction afin de donner les mêmes résultats pour un ensemble de données donné à chaque exécution. La test_size indique la taille de l’ensemble de test. 0,25 indique la division de 25 % des données de test et 75 % des données de formation.

    #Splitting the data set to create train and test sets
    X_att_train, X_att_test, y_label_train, y_label_test = train_test_split(X_att, y_label, random_state = 42, test_size = 0.25)

    Application de la fonction de classification de l’arbre de décision

    Le code suivant implémente l’arbre de décision en créant un modèle de classification à l’aide de DecisionTreeClassifier fonctionner avec le critère défini comme ‘entropie’. Ce critère définit la mesure de sélection des attributs sur Gain d’informations. Ensuite, le code adapte le modèle à notre ensemble d’attributs et d’étiquettes d’entraînement.

    #Applying decision tree classifier
    clf_dt = DecisionTreeClassifier(criterion = 'entropy')
    clf_dt.fit(X_att_train, y_label_train)

    Calcul de la précision du modèle

    Le morceau de code suivant calcule et imprime la précision du modèle de classification de l’arbre de décision sur les ensembles d’apprentissage et de test. Pour calculer le score de précision, nous utilisons le prédire fonction. La précision était de 100 % pour l’ensemble d’apprentissage et de 94,7 % pour l’ensemble de test.

    print('Training data accuracy: ', accuracy_score(y_true=y_label_train, y_pred=clf_dt.predict(X_att_train)))
    print('Test data accuracy: ', accuracy_score(y_true=y_label_test, y_pred=clf_dt.predict(X_att_test)))

    Applications d’arbre de décision dans le monde réel

    Les arbres de décision trouvent leurs applications dans de nombreuses industries dans leurs processus de prise de décision. Les applications courantes des arbres de décision se trouvent dans les secteurs de la finance et du marketing. Ils peuvent être utilisés pour :

    • les approbations de prêt,
    • gestion des dépenses,
    • prédictions de désabonnement des clients,
    • la viabilité des nouveaux produits, et plus encore.

    Comment améliorer les arbres de décision ?

    En conclusion de ce contexte de base et de la mise en œuvre des arbres de décision, il est prudent de supposer qu’ils sont toujours populaires pour leur interprétabilité. La raison pour laquelle les arbres de décision sont faciles à comprendre est qu’ils peuvent être visualisés et interprétés par les humains. Par conséquent, ils constituent une approche intuitive pour résoudre les problèmes d’apprentissage automatique tout en garantissant que les résultats sont interprétables. L’interprétabilité dans l’apprentissage automatique est un sujet dont nous avons discuté dans le passé, et il est également lié au thème émergent de l’éthique de l’IA.

    Comme tout algorithme d’apprentissage automatique, les arbres de décision peuvent également être améliorés pour éviter le surajustement et les biais vers la classe de prédiction dominante. L’élagage et l’assemblage sont des approches courantes pour surmonter les lacunes de l’algorithme d’arbre de décision. Même avec ces lacunes, les arbres de décision sont le fondement des algorithmes d’analyse de décision et resteront toujours pertinents dans l’apprentissage automatique.

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.