web-dev-qa-db-fra.com

Quelle est l'erreur de sortie de sac dans les forêts aléatoires?

Quelle est l'erreur de sortie de sac dans les forêts aléatoires? Est-ce le paramètre optimal pour trouver le bon nombre d'arbres dans une forêt aléatoire?

53
csalive

Je vais tenter d'expliquer:

Supposons que notre ensemble de données d'apprentissage soit représenté par T et supposons que l'ensemble de données possède M caractéristiques (ou attributs ou variables).

T = {(X1,y1), (X2,y2), ... (Xn, yn)}

et

Xi is input vector {xi1, xi2, ... xiM}

yi is the label (or output or class). 

résumé de RF:

L'algorithme Forêts aléatoires est un classificateur basé principalement sur deux méthodes -

  • Ensachage
  • Méthode du sous-espace aléatoire.

Supposons que nous décidons d'avoir S nombre d'arbres dans notre forêt, puis nous créons d'abord S des ensembles de données de "same size as original" Créés à partir d'un rééchantillonnage aléatoire des données en T avec remplacement (n fois pour chaque ensemble de données). Il en résultera des ensembles de données {T1, T2, ... TS}. Chacun de ceux-ci est appelé un bootstrap jeu de données. En raison du "avec-remplacement" chaque jeu de données Ti peut avoir des enregistrements de données en double et Ti peut manquer plusieurs enregistrements de données des jeux de données d'origine. Cela s'appelle Bootstrapping. (En.wikipedia.org/wiki/Bootstrapping_(statistics))

L'ensachage est le processus consistant à prendre des bootstraps puis à agréger les modèles appris sur chaque bootstrap.

Maintenant, RF crée des arbres S et utilise m (=sqrt(M) or =floor(lnM+1)) des sous-fonctionnalités aléatoires parmi M fonctionnalités possibles pour créer n'importe quel arbre. Cela s'appelle aléatoire méthode subspatiale.

Donc, pour chaque Ti bootstrap jeu de données, vous créez un arbre Ki. Si vous voulez classer certaines données d'entrée D = {x1, x2, ..., xM} Vous le laissez passer chaque arbre et produire S sorties (une pour chaque arbre) qui peuvent être désignées par Y = {y1, y2, ..., ys}. La prédiction finale est un vote majoritaire sur cet ensemble.

Erreur hors du sac:

Après avoir créé les classificateurs (S arbres), pour chaque (Xi,yi) Dans le jeu de formation d'origine, c'est-à-dire T, sélectionnez tout Tk qui n'inclut pas (Xi,yi). Ce sous-ensemble, faites attention, est un ensemble de jeux de données boostrap qui ne contient pas un enregistrement particulier de l'ensemble de données d'origine. Cet ensemble est appelé des exemples hors du sac. Il existe n de tels sous-ensembles (un pour chaque enregistrement de données dans l'ensemble de données d'origine T). Le classificateur OOB est l'agrégation de votes UNIQUEMENT sur Tk de sorte qu'il ne contient pas (xi,yi).

L'estimation hors sac de l'erreur de généralisation est le taux d'erreur du classificateur hors sac sur l'ensemble d'apprentissage (comparez-le avec les yi connus).

Pourquoi c'est important? L'étude des estimations d'erreur pour les classificateurs en sac dans Breiman [1996b], fournit des preuves empiriques pour montrer que l'estimation hors sac est aussi précise que l'utilisation d'un ensemble de test de la même taille que l'ensemble d'entraînement. Par conséquent, l'utilisation de l'estimation d'erreur hors du sac élimine le besoin d'un ensemble de test mis de côté.

(Merci @Rudolf pour les corrections. Ses commentaires ci-dessous.)

132
Manoj Awasthi

Dans la mise en œuvre originale de Breiman de l'algorithme de forêt aléatoire, chaque arbre est formé sur environ 2/3 du total des données de formation. Au fur et à mesure de la construction de la forêt, chaque arbre peut ainsi être testé (de façon similaire à laisser une validation croisée) sur les échantillons non utilisés dans la construction de cet arbre. Il s'agit de l'estimation d'erreur hors du sac - une estimation d'erreur interne d'une forêt aléatoire lors de sa construction.

42
eagle34