MACHINE LEARNING AVEC SCIKIT-LEARN Aurélien Géron M1 Informatique Générale Grou
MACHINE LEARNING AVEC SCIKIT-LEARN Aurélien Géron M1 Informatique Générale Groupe 8: - AINGATIANA Santatriniaina Hosana, numéro : 1 - RABENIRINA Onjaniaina, numéro : 55 - RAHARIJAONA Tanjonirina Valisoa, numéro : 62 - RAKOTOANDRIANAINA Ariela Cyrille, numéro : 67 - RAKOTOMALALA Mendrika Hajaina, numéro : 74 - RAKOTONIRINA Lalaina Princy, numéro : 77 - RAMILISON Mandresy Tsiory Ambinintsoa, numéro : 86 Année scolaire 2019-2020 Chapitre 7 : Apprentissage d’ensemble et forêts aléatoires RESUME Nous allons parler dans ce chapitre des méthodes d’ensemble les plus populaires. Nous allons aussi explorer les forêts aléatoires qui sont des ensembles d’arbres de décision. Imaginons que vous posiez une question complexe à des milliers de personnes choisies au hasard, et que vous combiniez leurs réponses. Souvent, vous découvrirez que la synthèse de ces réponses est meilleure que celle d’un expert. C’est ce qu’on appelle la sagesse des foules (ou intelligence collective). De la même façon, si vous agrégez les prédictions d’un groupe de prédicteurs (tels que des classificateurs ou regrésseurs), vous obtiendrez souvent une meilleure prédiction qu’avec le meilleur des prédicteurs pris individuellement. Un groupe de prédicteurs constitue un ensemble, et par conséquent cette technique s’appelle apprentissage d’ensemble. De même un algorithme d’apprentissage d’ensemble s’appelle une méthode d’ensemble (ou encore méthode ensembliste). Vous pouvez par exemple entraîner un ensemble d’arbres de décision, chacun sur un sous-ensemble aléatoire différent du jeu d’entraînement. Pour obtenir des prédictions, il vous suffit d’obtenir les prédictions de chacun des arbres, puis de choisir la classe obtenant le plus de votes. Un tel ensemble d’arbres de décision s’appelle une forêt aléatoire : en dépit de sa simplicité, c’est l’un des algorithmes d’apprentissage automatique les plus puissants disponibles à ce jour. Année scolaire 2019-2020 7.1 Classificateurs par vote Supposons que vous ayez entraîné quelques classificateurs, chacun d’entre eux atteignant une exactitude de 80 % environ. Pour plus de précision la classification par vote se divise en deux : Classificateur à vote rigide Le classificateur à vote rigide consiste à agréger les prédictions de chacun des classificateurs et de prédire la classe qui obtient le plus grand nombre de votes. Classificateur à vote souple Ce type de classificateur permet de prédire la plus grande moyenne des probabilités sur l’ensemble des classificateurs. [Le vote à souple est meilleur que le vote rigide, parce qu’il accorde plus de poids aux votes dont l’indice de confiance est élevé.] 7.2 Bagging et Pasting Comme nous l’avons vu précédemment, l’un des moyens d’obtenir un ensemble de classificateurs diversifiés consiste à utiliser des algorithmes d’entraînement très différents. Le bagging (tirage avec remise) sur-ajuste les données d’apprentissage. Par contre, il fournit souvent de simple (moins complexe) et meilleur modèle et un biais élevé. Le pasting tirage sans remise. Sur-ajustement : overfitting, le modèle fonctionne bien sur les données d’apprentissage, mais qu’il ne se généralise pas bien (ex : chauffeur de taxi). Biais : erreur de généralisation due à de mauvaises hypothèses, comme par exemple de supposer que les données sont linéaires lorsqu’elles sont quadratiques. Un modèle à haut biais a plus de chances de sous-ajuster les données d’entraînement. [chap 4] Variance : erreur due à la sensibilité excessive du modèle à de petites variations dans le jeu d’entraînement. Un modèle ayant beaucoup de degrés de liberté (comme par exemple un modèle polynomial de degré élevé) aura vraisemblablement une variance élevée, et par conséquent sur-ajustera les données d’entraînements. [chap 4] Année scolaire 2019-2020 Erreur irréductibles : elle est due au bruit présent dans les données. Le seul moyen de réduire cette composante de l’erreur consiste à nettoyer les données. [chap 4] Comme vous pouvez le voir, les prédicteurs peuvent être entraînés en parallèle, en utilisant plusieurs cœurs de processeur, ou même différents serveurs. De même, les prédictions peuvent s’effectuer en parallèle. C’est une des raisons pour lesquelles le bagging et le pasting sont des méthodes très appréciées : elles s’adaptent très bien à la taille des données. 7.2.1 Bagging et pasting dans Scikit-Learn from sklearn.ensemble import BaggingClassifier from sklearn.tree import DecisionTreeClassifier bag_clf = BaggingClassifier( DecisionTreeClassifier(), n_estimators=500, max_samples=100, bootstrap=True, n_jobs=-1 ) bag_clf.fit(X_train, y_train) y_pred = bag_clf.predict(X_test) 7.2.2 Évaluation hors sélection Ceci concerne plus le bagging que le pasting. Car la liste des observations hors sélection peut augmenter durant le jeu d’entrainement. L’évaluation hors sélection permet d’évaluer l’ensemble (des observations) sans avoir besoin de recourir à une validation séparée ou une validation croisée. Validation croisée : est une technique qui permet de comparer des modèles (pour en faire la sélection et pour ajuster des hyperparamètres) pour savoir et sélectionner la méthode qui fonctionne le mieux, sans nécessiter un ensemble de validation séparée. Ceci préserve de précieuses données d’entrainement. [chap 1] Un modèle : est une version simplifiée des observations comme par exemple linéaire, polynomial. [chap 1] 7.3 Parcelles aléatoires et sous-espaces aléatoires Est utile pour des données d’entrée de grande dimension comme les images. Pour se faire, on procède par l’échantillonnage qui constitue la méthode d’ensemble des parcelles aléatoires ; il consiste à conjoindre des observations et des variables. Elle augmente aussi le biais. Année scolaire 2019-2020 Mais tirer au sort certaines variables constitue la méthode des sous-espaces aléatoires. 7.4 Forêts aléatoires Est un ensemble d’arbres de décision, entrainés en général en utilisant une méthode de bagging. Cet algorithme cherche la meilleure variable au sein d’un sous-ensemble de variables choisies au hasard, il en résulte une plus grande diversité des arbres avec le compromis d’un biais plus élevé. 7.4.1 Arbres extrêmement aléatoires Cet algorithme augmente le biais, ce qui engendre sa rapidité par rapport aux forêts aléatoires. [Une fois encore le compromis consiste à accepter un peu plus de biais en échange d’une diminution de la variance. Cela rend aussi ces extra-arbres bien plus rapides à entraîner que les forêts aléatoires ordinaires] 7.4.2 Importance des variables Une autre grande qualité des forêts aléatoires est qu’elles permettent de mesurer facilement l’importance relative des variables Une variable importante aura tendance en moyenne à réduire davantage l’impureté Gini. Pour se faire, il faut calculer la réduction moyenne d’impureté sur l’ensemble des nœuds où cette variable intervient au travers de l’ensemble des arbres de la forêt aléatoire. Cette moyenne est pondérée par l’importance de chaque nœud et le résultat est normalisé pour que la somme des importances des variables soit égale à 1. Impureté Gini : cherche à savoir si les données sont identiques ou variés. Sa valeur est nulle lorsque les données sont identiques. [les forêts aléatoires sont très pratique pour comprendre rapidement quelles variables ont réellement de l’importance.] 7.5 Boosting L’idée générale de la plupart des méthodes de boosting est d’entrainer des prédicteurs l’un après l’autre, chacun s’efforçant de corriger son prédécesseur. Année scolaire 2019-2020 7.5.1 Adaboost Pour l’adaboost, l’un des moyens de corriger son prédécesseur consiste à prêter plus d’attention aux observations d’entrainement que ce prédécesseur a sous-ajustées. Pour ce type de classificateur, il nécessite un classificateur de base tel qu’un arbre de décision pour effectuer des prédictions ; et un second classificateur utilisant les poids modifiés est alors entrainé puis effectue des prédictions et ainsi de suite. Ce qui engendre la progression du résultat à chaque itération sur un classificateur. 7.5.2 Boosting de gradient Le boosting gradient travaille par ajout séquentiel de prédicteur à un ensemble, chacun d’eux corrigeant son prédécesseur. Cependant, au lieu de modifier légèrement les poids des observations à chaque itération comme le fait AdaBoost elle tente d’ajuster un nouveau prédicteur aux erreurs résiduelles du prédicteur précédent. 7.6 Stacking Le stacking, l’idée est simple, c’est à peu près le dérivé des fonctions triviales (tel que le vote majoritaire), car on entraine un modèle pour agréger les prédictions des prédicteurs précédents ; ce modèle est nommé BLENDER. Ce qui différencie le blender par rapport aux fonctions triviales sont : - Le jeu d’entrainement est partagé en deux sous-ensembles - On entraine les prédicteurs avec le premier sous-ensemble - On entraine les prédicteurs avec le deuxième sous-ensemble mise en réserve, ceci garantit que les prédictions seront « propres » ; car les prédicteurs n’ont jamais vu ces observations durant l’entrainement. Il est possible d’entrainer plusieurs blenders différents comme par exemple un blender avec régression linéaire ou blender avec forêt aléatoire. De ce fait, nous obtenons une couche complète de blenders. L’astuce consiste à partager le jeu d’entrainement en trois sous-ensembles. Année scolaire 2019-2020 uploads/Politique/ resume-chap7-ml.pdf
Documents similaires










-
32
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Fev 23, 2022
- Catégorie Politics / Politiq...
- Langue French
- Taille du fichier 0.1037MB