Pas encore de compte ?
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.
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
Copyright (c) 2016 Jacob VanderPlas
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/
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/
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