Logo elodees  elodees

Une IA bien-veillante pour un monde meilleur













Seuls les caractères alphabétiques accentués ou non ainsi que l'espace sont acceptés

Logo IA




Algorithme d'arbre de décision





Pas encore de compte ?

Inscrivez-vous pour accéder à tous les contenus




L'arbre de décision est l'outil le plus puissant et le plus largement utilisé pour la catégorisation et la prédiction.

Un arbre de décision est une structure arborescente de type organigramme dans laquelle chaque nœud interne représente un test d'attribut.

Chaque branche reflète le résultat du test et chaque nœud feuille (nœud terminal) stocke une étiquette de classe.

L'utilisation d'un algorithme d'arbre de décision vise à créer un modèle d'apprentissage capable de prédire la classe ou la valeur de la variable cible en apprenant des règles de décision simples déduites des données historiques.



Image gratuite et libre de droits fournie par pexel.com


Root Nodes : c'est le nœud présent au début d'un arbre de décision à partir de ce nœud, la population commence à se diviser selon diverses caractéristiques.

Decision Nodes : les nœuds que nous obtenons après avoir divisé les nœuds racine sont appelés nœuds de décision.

Terminal Nodes : les nœuds où une division supplémentaire n'est pas possible sont appelés nœuds feuilles ou nœuds terminaux.

Sub-tree : Tout comme une petite partie d'un graphique est appelée un sous-graphe de même, une sous-section de cet arbre de décision est appelée un sous-arbre.



Testé sous Anaconda et Python 3.7

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
 
#Creating a decision tree
from sklearn.datasets import make_blobs
 
X, y = make_blobs(n_samples=300, centers=4,
                  random_state=0, cluster_std=1.0)
plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='rainbow');
plt.show()
 
from sklearn.tree import DecisionTreeClassifier
tree = DecisionTreeClassifier().fit(X, y)
 
def visualize_classifier(model, X, y, ax=None, cmap='rainbow'):
    ax = ax or plt.gca()
 
    # Plot the training points
    ax.scatter(X[:, 0], X[:, 1], c=y, s=30, cmap=cmap,
               clim=(y.min(), y.max()), zorder=3)
    ax.axis('tight')
    ax.axis('off')
    xlim = ax.get_xlim()
    ylim = ax.get_ylim()
 
    # fit the estimator
    model.fit(X, y)
    xx, yy = np.meshgrid(np.linspace(*xlim, num=200),
                         np.linspace(*ylim, num=200))
    Z = model.predict(np.c_[xx.ravel(), yy.ravel()]).reshape(xx.shape)
 
    # Create a color plot with the results
    n_classes = len(np.unique(y))
    contours = ax.contourf(xx, yy, Z, alpha=0.3,
                           levels=np.arange(n_classes + 1) - 0.5,
                           cmap=cmap, clim=(y.min(), y.max()),
                           zorder=1)
 
    ax.set(xlim=xlim, ylim=ylim)
 
visualize_classifier(DecisionTreeClassifier(), X, y)
 
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import BaggingClassifier
 
tree = DecisionTreeClassifier()
bag = BaggingClassifier(tree, n_estimators=100, max_samples=0.8,
                        random_state=1)
 
bag.fit(X, y)
visualize_classifier(bag, X, y)
 


Source : https://jakevdp.github.io/PythonDataScienceHandbook/05.08-random-forests.html



PythonDataScienceHandbook

LICENSE-CODE

License: MITLicenseMIT  Copyright (c) 2016 Jacob VanderPlas


GitHub



Image gratuite et libre de droits fournie par pexel.com
Image gratuite et libre de droits fournie par pexel.com




Testé sous Anaconda et Python 3.7

import matplotlib.pyplot as plot
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn import tree
 
iris = datasets.load_iris()
X = iris.data[:, 2:]
Y = iris.target
 
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.5, random_state=1, stratify=Y)
 
classifier_tree = DecisionTreeClassifier(criterion='gini', max_depth=6, random_state=1)
classifier_tree.fit(X_train, Y_train)
 
figure, axis = plot.subplots(figsize=(12, 12))
tree.plot_tree(classifier_tree, fontsize=12)
plot.show()
 


Source : https://pythonguides.com/scikit-learn-decision-tree/



Image gratuite et libre de droits fournie par pexel.com


Testé sous Anaconda et Python 3.7

import numpy as np
from sklearn.tree import DecisionTreeRegressor
import matplotlib.pyplot as plot
 
 
range = np.random.RandomState(1)
X = np.sort(5 * range.rand(80, 1), axis=0)
Y = np.sin(X).ravel()
Y[::5] += 3 * (0.5 - range.rand(16))
 
 
regression_1 = DecisionTreeRegressor(max_depth=2)
regression_2 = DecisionTreeRegressor(max_depth=5)
regression_1.fit(X, Y)
regression_2.fit(X, Y)
 
 
X_test = np.arange(0.0, 5.0, 0.01)[:, np.newaxis]
Y1 = regression_1.predict(X_test)
Y2 = regression_2.predict(X_test)
 
 
plot.figure()
plot.scatter(X, Y, s=20, edgecolor="black", c="pink", label="data")
plot.plot(X_test, Y1, color="blue", label="max_depth=4", linewidth=2)
plot.plot(X_test, Y2, color="green", label="max_depth=7", linewidth=2)
plot.xlabel("data")
plot.ylabel("target")
plot.title("Decision Tree Regression")
plot.legend()
plot.show()
 


Source : https://pythonguides.com/scikit-learn-decision-tree/



Image gratuite et libre de droits fournie par pexel.com




Apprentissage profond

Apprentissage automatique










Bienvenu, je m’appelle Eric Soupet et je suis l'administrateur du site elodees.com. elodees.com est un état de l'art de l'Intelligence Artificielle et se veut collaboratif, vous pouvez dès à présent proposer du contenu tels que des articles, des événements, des tutoriels, ... alors n'hésitez pas !

Crédit des images de la plate-forme : Pixabay - Pixabay License | Pexels - Pexels License