Une erreur hors du sac rend le CV inutile dans les forêts aléatoires?

15

Je suis relativement nouveau dans les forêts aléatoires. Dans le passé, j'ai toujours comparé la précision de l' ajustement vs le test à l' ajustement vs le train pour détecter tout sur-ajustement. Mais je viens de lire ici que:

"Dans les forêts aléatoires, il n'y a pas besoin de validation croisée ou d'un ensemble de tests séparé pour obtenir une estimation impartiale de l'erreur de l'ensemble de tests. Elle est estimée en interne, pendant l'exécution ..."

Le petit paragraphe ci-dessus se trouve dans la section Estimation des erreurs hors du sac (oob) . Ce concept d'erreur hors du sac est complètement nouveau pour moi et ce qui est un peu déroutant, c'est la façon dont l'erreur OOB dans mon modèle est de 35% (ou 65% de précision), mais pourtant, si j'applique une validation croisée à mes données (juste un simple holdout) méthode) et comparer les deux ajustement vs test contre ajustement vs train, j'obtiens une précision de 65% et une précision de 96% respectivement. D'après mon expérience, cela est considéré comme sur-ajusté, mais l'OOB contient une erreur de 35% tout comme mon erreur d' ajustement par rapport à l' erreur de test . Suis-je trop en forme? Dois-je même utiliser la validation croisée pour vérifier le sur-ajustement dans les forêts aléatoires?

En bref, je ne sais pas si je dois faire confiance à l'OOB pour obtenir une erreur non biaisée de l'erreur de l'ensemble de test lorsque mon ajustement par rapport au train indique que je suis en sur-ajustement!

jgozal
la source
OOB peut être utilisé pour déterminer les hyper-paramètres. À part cela, pour moi, afin d'estimer les performances d'un modèle, il faut utiliser la validation croisée.
Metariat
@Matemattica quand vous parlez d'hyper-paramètres de quoi parlez-vous exactement? Désolé pour mon manque de connaissances dans le sujet
jgozal
nombre d'arbres et d'entités sélectionnées au hasard à chaque itération
Metariat
Je sais que c'est une question complètement différente, mais comment déterminez-vous le nombre d'arbres et l'échantillon de fonctionnalités à chaque itération à partir d'une erreur?
jgozal
1
Peut-être que cela pourrait aider: stats.stackexchange.com/a/112052/78313 En général, je n'ai jamais vu une telle différence dans les RF!
Metariat

Réponses:

21
  • erreur de formation (comme dans predict(model, data=train)) est généralement inutile. Sauf si vous effectuez un élagage (non standard) des arbres, il ne peut pas être bien supérieur à 0 par conception de l'algorithme . La forêt aléatoire utilise l'agrégation bootstrap des arbres de décision, qui sont connus pour être trop surajustés. Cela équivaut à une erreur d'apprentissage pour un classificateur 1 voisin le plus proche.

  • Cependant, l'algorithme offre un moyen très élégant de calculer l' estimation d'erreur hors sac qui est essentiellement une estimation hors bootstrap de l'erreur du modèle agrégé). L'erreur hors sac est l'erreur estimée pour l'agrégation des prédictions de la des arbres qui ont été formés sans ce cas particulier. Les modèles agrégés pour l'erreur hors sac ne seront indépendants que s'il n'y a pas de dépendance entre les lignes de données d'entrée. Soit chaque ligne = un cas indépendant, pas de structure de données hiérarchique / pas de regroupement / pas de mesures répétées.1e

    Ainsi, l'erreur hors du sac n'est pas exactement la même (moins d'arbres pour l'agrégation, plus de copies de cas de formation) qu'une erreur de validation croisée, mais à des fins pratiques, elle est suffisamment proche.

  • Ce qui aurait du sens à examiner afin de détecter un sur-ajustement est de comparer une erreur hors du sac avec une validation externe. Cependant, à moins que vous ne connaissiez le clustering dans vos données, une erreur de validation croisée "simple" sera sujette au même biais optimiste que l'erreur hors sac: le fractionnement est effectué selon des principes très similaires.
    Vous auriez besoin de comparer la validation hors sac ou croisée avec l'erreur pour une expérience de test bien conçue pour détecter cela.

cbeleites soutient Monica
la source
11

L'erreur hors sac est utile et peut remplacer d'autres protocoles d'estimation des performances (comme la validation croisée), mais doit être utilisée avec précaution.

Comme la validation croisée, l'estimation des performances à l'aide d'échantillons hors sac est calculée à l'aide de données qui n'ont pas été utilisées pour l'apprentissage. Si les données ont été traitées d'une manière qui transfère des informations entre les échantillons, l'estimation sera (probablement) biaisée. Des exemples simples qui me viennent à l'esprit sont la sélection de caractéristiques ou l'imputation de valeurs manquantes. Dans les deux cas (et en particulier pour la sélection des caractéristiques), les données sont transformées à l'aide des informations de l'ensemble des données, biaisant l'estimation.

George
la source