Mise en sac, boost et empilement dans l'apprentissage automatique

245

Quelles sont les similitudes et les différences entre ces 3 méthodes:

  • Ensachage,
  • Boosting,
  • Empiler?

Quel est le meilleur? Et pourquoi?

Pouvez-vous me donner un exemple pour chacun?

Bucsa Lucian
la source
3
pour une référence de manuel, je recommande: "Méthodes d'ensemble: fondements et algorithmes" de Zhou, Zhi-Hua
Vadim Smolyakov
1
Voir ici une question connexe .
Ricardo Cruz

Réponses:

252

Tous les trois sont dits « méta-algorithmes »: les approches de combiner plusieurs techniques d'apprentissage machine dans un modèle prédictif afin de diminuer la variance ( ensachage ), le biais ( renforcement ) ou en améliorant la force prédictive ( empilement alias ensemble ).

Chaque algorithme comprend deux étapes:

  1. Produire une distribution de modèles ML simples sur des sous-ensembles de données originales.

  2. Combinaison de la distribution dans un modèle "agrégé".

Voici une brève description des trois méthodes:

  1. Ensachage (signifie B ootstrap Agg regat ing ) est un moyen de diminuer la variance de votre prédiction en générantdonnées supplémentaires pourformation de votre ensembledonnéesorigineutilisant des combinaisons avec des répétitions pour produire multijeux du même cardinalité / taille que vos donnéesorigine. En augmentant la taille de votre ensemble d'entraînement, vous ne pouvez pas améliorer la force prédictive du modèle, mais simplement réduire la variance, en ajustant étroitement la prédiction au résultat attendu.

  2. Le boosting est une approche en deux étapes, dans laquelle on utilise d’abord des sous-ensembles de données originales pour produire une série de modèles moyennement performants, puis "booste" leur performance en les combinant à l’aide d’une fonction de coût particulière (= vote majoritaire). Contrairement à l'ensachage, dans le classique, stimuler la création de sous-ensembles n'est pas aléatoire et dépend des performances des modèles précédents: chaque nouveau sous-ensemble contient les éléments qui ont été (probablement) mal classés par les modèles précédents.

  3. L'empilement s'apparente au renforcement: vous appliquez également plusieurs modèles à vos données d'origine. Cependant, la différence réside dans le fait que vous n’avez pas seulement une formule empirique pour votre fonction de pondération, mais que vous introduisez un méta-niveau et utilisez un autre modèle / approche pour estimer les entrées avec les sorties de chaque modèle pour estimer les poids ou les valeurs. , en d’autres termes, pour déterminer quels modèles fonctionnent bien et quels sont les résultats obtenus avec ces données d’entrée.

Voici un tableau de comparaison:

Tableau comparatif

Comme vous le voyez, toutes ces approches sont différentes pour combiner plusieurs modèles en un modèle meilleur, et il n’ya pas de gagnant ici: tout dépend de votre domaine et de ce que vous allez faire. Vous pouvez toujours traiter l' empilement comme une sorte de plus avancées stimulant , cependant, la difficulté de trouver une bonne approche pour votre méta-niveau, il est difficile d'appliquer cette approche dans la pratique.

Quelques exemples de chacun:

  1. Ensachage : données sur l'ozone .
  2. Boosting : est utilisé pour améliorer la précision de la reconnaissance optique des caractères (OCR).
  3. Empilement : est utilisé dans la classification des microréseaux de cancer en médecine.
Alexander Galkin
la source
8
Il semble que votre définition de boosting soit différente de celle de wiki (pour laquelle vous avez créé un lien) ou de cet article . Tous les deux disent qu'en renforçant le prochain classificateur, on utilise les résultats de ceux précédemment formés, mais vous ne l'avez pas mentionné. La méthode que vous décrivez, par contre, ressemble à certaines techniques de calcul de la moyenne des votes / modèles.
Alexander Rodin
2
@ a-rodin: Merci d'avoir souligné cet aspect important, j'ai complètement réécrit cette section pour mieux refléter cela. En ce qui concerne votre deuxième remarque, je crois comprendre que le fait d’améliorer est aussi un type de vote / d’étalement, ou est-ce que je vous ai mal compris?
Alexander Galkin
@AlexanderGalkin J'avais en tête l'amélioration du gradient au moment de commenter: cela ne ressemble pas à un vote, mais plutôt à une technique d'approximation de fonction itérative. Cependant, par exemple, AdaBoost ressemble plus à un vote, je ne discuterai donc pas de cela.
Alexander Rodin
3
Dans votre première phrase, vous dites que la stimulation augmente les biais, mais dans le tableau de comparaison, vous indiquez que cela augmente la force prédictive. Sont-ils tous les deux vrais?
Ben Lindsay
68

Ensachage :

  1. ensemble parallèle : chaque modèle est construit indépendamment

  2. viser à diminuer la variance , pas les biais

  3. convient aux modèles à faible biais et à faible variance (modèles complexes)

  4. un exemple de méthode basée sur les arbres est la forêt aléatoire , qui développe des arbres pleinement développés (notez que RF modifie la procédure de croissance pour réduire la corrélation entre les arbres)

Boosting :

  1. ensemble séquentiel : essayez d'ajouter de nouveaux modèles qui fonctionnent bien là où les modèles précédents manquent

  2. viser à réduire les biais , pas la variance

  3. convient aux modèles à faible biais et à forte variance

  4. un exemple de méthode basée sur l’arbre est le boosting de gradient

Yuqian
la source
5
Commenter chacun des points pour savoir pourquoi et comment il est réalisé constituerait une amélioration considérable de votre réponse.
Tim
2
Pouvez-vous partager n'importe quel document / lien expliquant que stimuler et réduire la variance et comment il le fait? Je veux juste comprendre plus en profondeur
GeorgeOfTheRF
1
Merci Tim, je vais ajouter quelques commentaires plus tard. @ML_Pro, de la procédure de renforcement (par exemple, page 23 de cs.cornell.edu/courses/cs578/2005fa/… ), il est compréhensible que le renforcement puisse réduire les biais.
Yuqian
43

Juste pour élaborer un peu sur la réponse de Yuqian. L'idée sous-jacente à l'ensachage est que lorsque vous suréPAREZ avec une méthode de régression non paramétrique (généralement des arbres de régression ou de classification, mais qu'il peut s'agir de n'importe quelle méthode non paramétrique), vous avez tendance à passer à la partie à forte variance, sans biais (ou à biais faible). / compromis de variance. En effet, un modèle de surajustement est très flexible (biais si faible sur de nombreux rééchantillons de la même population, si ceux-ci étaient disponibles), mais présente une forte variabilité (si je collecte et suréforme un échantillon, et que vous collectez un échantillon et surajustement les résultats seront différents car la régression non paramétrique suit le bruit dans les données). Que pouvons-nous faire? Nous pouvons prendre de nombreux rééchantillons (à partir de l’amorçage), chaque surajustement, et les calculer en moyenne. Cela devrait conduire au même biais (faible) mais annuler une partie de la variance,

L’amélioration du gradient à son cœur fonctionne avec les régressions non paramétriques de UNDERFIT, trop simples et qui ne sont donc pas assez souples pour décrire la relation réelle dans les données (c’est-à-dire biaisées), mais parce qu’elles sont mal ajustées, elles ont obtenir le même résultat si vous collectez de nouveaux jeux de données). Comment corrigez-vous cela? Fondamentalement, si vous êtes en mauvais état, les RESIDUALS de votre modèle contiennent toujours une structure utile (informations sur la population), de sorte que vous augmentez l’arbre que vous avez (ou tout prédicteur non paramétrique) avec un arbre construit sur les résidus. Cela devrait être plus flexible que l'arbre d'origine. Vous générez de plus en plus d'arbres, chacun à l'étape k, augmenté d'un arbre pondéré basé sur un arbre ajusté aux résidus de l'étape k-1. Un de ces arbres devrait être optimal, vous devez donc soit pondérer tous ces arbres ensemble, soit en choisir un qui vous semble le mieux adapté. Ainsi, l’intensification du gradient est un moyen de créer un ensemble d’arbres candidats plus flexibles.

Comme pour toutes les approches de régression ou de classification non paramétriques, parfois, mettre en sac ou relancer fonctionne très bien, parfois l’une ou l’autre approche est médiocre, et parfois l’une ou l’autre des approches (ou les deux) s’effondrent.

De plus, ces deux techniques peuvent être appliquées à des méthodes de régression autres que les arbres, mais elles sont le plus souvent associées à des arbres, peut-être parce qu’il est difficile de définir des paramètres afin d’éviter les erreurs d’ajustement ou de surajustement.

AlaskaRon
la source
3
+1 pour l'overfit = variance, underfit = argument de biais! Une des raisons d'utiliser les arbres de décision est qu'ils sont structurellement instables et qu'ils bénéficient donc davantage de légers changements de conditions. ( abbottanalytics.com/assets/pdf/… )
Mark Horvath
3

Pour résumer, l’ ensachage et le renforcement sont normalement utilisés dans un algorithme, tandis que l’ empilement est généralement utilisé pour résumer plusieurs résultats d’algorithmes différents.

  • Mise en sac : amorcez des sous-ensembles de fonctionnalités et d'échantillons pour obtenir plusieurs prédictions et faire la moyenne (ou d'autres moyens) des résultats, par exemple Random Forest, ce qui élimine la variance et n'entraîne pas de problème de surajustement.
  • Stimuler : La différence de ensachage est que le modèle plus tard essaie d'apprendre l'erreur commise par un précédent, par exemple GBMet XGBoost, ce qui élimine la variance mais ont question overfitting.
  • Empilement : Normalement utilisé en compétition, quand on utilise plusieurs algorithmes pour s'entraîner sur le même ensemble de données et faire la moyenne (max, min ou autres combinaisons) du résultat afin d'obtenir une précision de prédiction plus élevée.
MJeremy
la source
2

l’ensachage et le rappel utilisent un seul algorithme d’apprentissage pour toutes les étapes; mais ils utilisent des méthodes différentes pour la manipulation des échantillons d'apprentissage. les deux sont des méthodes d'apprentissage d'ensemble combinant des décisions issues de plusieurs modèles.
Mise en sac :
1. rééchantillonne les données d'apprentissage pour obtenir M sous-ensembles (amorçage);
2. forme M classificateurs (même algorithme) sur la base de M jeux de données (échantillons différents);
3. Le classificateur final combine M sorties en votant;
le poids des échantillons est égal;
les classificateurs pèsent également;
diminue l'erreur en diminuant la variance.
Boosting : concentrez-vous ici sur l'algorithme adaboost
1. commencez avec un poids égal pour tous les échantillons du premier tour;
2. dans les tours suivants M-1, augmentez le poids des échantillons mal classés lors du dernier tour, diminuez le poids des échantillons correctement classés au dernier tour
3. en utilisant un vote pondéré, le classificateur final combine plusieurs classificateurs des tours précédents et donne des poids plus importants aux classificateurs avec moins de erreurs de classification.
repasser les échantillons par étapes; poids pour chaque tour basé sur les résultats des
échantillons du dernier tour ( poids) au lieu du ré-échantillonnage (ensachage).

Shrek
la source
0

L'ensachage et le boosting ont tendance à utiliser de nombreux modèles homogènes.

L'empilement combine les résultats de types de modèles hétérogènes.

Comme aucun type de modèle ne correspond le mieux à toute distribution, vous pouvez comprendre pourquoi cela peut augmenter le pouvoir de prévision.

Brad
la source