5

ensemble learning est un exemple de nombreuses instances d'un classificateur particulier, par exemple Decision Tree Classifier; ou est-ce un mélange de deux classificateurs tels que Neural Networks, Decision Tree, SVM et ainsi de suite?Comprendre l'apprentissage d'ensemble et son implémentation dans Matlab

J'ai regardé dans cette description wikipedia's sur Bagging un ensemble apprenant. Il dit que:

ensachage conduit à « l'amélioration des procédures instables » (Breiman, 1996), qui comprennent, par exemple, les réseaux de neurones, arbres de classification et régression, et la sélection des sous-ensemble dans la régression linéaire (Breiman, 1994) .

Je suis un peu confus à propos de cette description. J'ai aussi regardé dans implementation de l'algorithme d'ensemble de MATLAB. Par exemple celui-ci:

load fisheriris 
ens = fitensemble(meas,species,'AdaBoostM2',100,'Tree') 

meas et species sont entrées de la fonction fitensemble. Ici, dans cet exemple, il utilise AdaBoostM2 faible apprenant de type Tree et utilise 100 d'entre eux. Comment cette instance simple de cette fonction peut-elle être adressée pour montrer que l'apprentissage d'ensemble est utilisé pour combiner différents classificateurs tels que Neural Net, KNN, Naive Bayes ensemble?

Quelqu'un peut-il expliquer ce qu'est réellement l'apprentissage d'ensemble et qu'est-ce que MATLAB essaie de faire dans sa mise en œuvre de la fonction fitensemble?

Répondre

11

L'idée de base de ensemble learning est de combiner plusieurs modèles pour améliorer les performances de prédiction. Ils sont considérés méta-algorithmes conçu pour fonctionner au-dessus des algorithmes d'apprentissage existants. Il existe différentes approches:

  • Bagging (est synonyme de B ootstrap Agg regation) génère un ensemble de modèles chacun formés sur un échantillonnage aléatoire des données (bootstrapresampling: échantillon N cas avec remplacement). Les prédictions de ces modèles sont combinées/agrégées pour produire la prédiction finale en utilisant la moyenne. L'idée est de randomiser l'algorithme d'apprentissage, comme choisir un sous-ensemble de caractéristiques au hasard avant d'appliquer l'algorithme d'apprentissage (pensez par exemple à Random Forest). Chaque modèle est formé sur des données projetées sur un sous-espace choisi au hasard. Les résultats des modèles sont ensuite combinés, généralement à la majorité simple.

  • Boosting: également construit sur le concept de vote/moyennage de plusieurs modèles, mais il pondère les modèles en fonction de leurs performances. Il construit des modèles de manière itérative, où de nouveaux modèles sont encouragés à devenir des «experts» pour les cas mal classés par les modèles précédents. Boosting fonctionne mieux si l'algorithme d'apprentissage de base n'est pas trop complexe (faible apprenant). Il existe plusieurs variantes de cet algorithme (AdaBoost, LogitBoost, GentleBoost, LPBoost, etc.). : Combine les prédictions d'apprenants à bases multiples (généralement de types différents: kNN, ANN, SVM, etc.), sans utiliser le vote comme auparavant, mais en utilisant un méta-apprenant (un modèle formé sur la sortie) des modèles de base).Ainsi, les prédictions des apprenants de base sont transmises en tant que données d'entrée au méta-apprenant dans la couche suivante pour produire la prédiction finale.


fitensemble est une fonction Matlab utilisée pour construire un ensemble learner utile pour la classification et la régression. Il prend en charge trois méthodes: ensachage, renforcement et sous-espace. Vous pouvez choisir entre trois types d'apprenants faibles disponibles: decision tree (decision stump vraiment), l'analyse discriminante (linear et quadratic), ou le k-nearest neighbor classificateur.

Note: Sauf pour la méthode Subspace, sont basés sur des algorithmes tree learners tous boosting and bagging. Subspace peut utiliser soit discriminant analysis ou k-nearest neighbor apprenants.

Par exemple, le code suivant trains un classificateur ensemble d'arbre de décision (constitué de 100 arbres) en utilisant le procédé AdaBoost monté sur l'ensemble de données de formation XY avec des classes correspondantes.

ens = fitensemble(X, Y, 'AdaBoostM1', 100, 'Tree') 

(la partie M1 indique un classificateur binaire, il existe une version M2 étendue des problèmes multiclassent)

+1

vous pouvez en savoir plus sur les méthodes d'ensemble en naviguant sur des questions et des réponses sur [stats.SE] (http: //stats.stackexchange.com/questions/tagged/ensemble) – Amro

+0

Merci pour les modifications, haha, vraiment appréciable. J'étais confus au sujet de l'apprentissage d'ensemble, et après avoir appris à ce sujet, était trop paresseux pour faire les modifications. – motiur

+0

Pouvez-vous spécifier votre propre apprenant? – JohnAndrews

Questions connexes