Aide à comprendre la Validation croisée et les arbres de décision

J'ai lu sur les arbres de décision et la Validation croisée, et je comprends les deux concepts. Cependant, j'ai du mal à comprendre la Validation croisée en ce qui concerne les arbres de décision. Essentiellement, la Validation croisée vous permet d'alterner entre la formation et les tests lorsque votre ensemble de données est relativement petit pour maximiser votre estimation des erreurs. Un algorithme très simple va quelque chose comme ceci:

  1. décidez du nombre de plis que vous voulez (k)
  2. subdivisez votre jeu de données en k plis
  3. Utilisez des plis k-1 pour un ensemble d'entraînement pour construire un arbre.
  4. Utilisez le jeu de tests pour estimer les statistiques sur l'erreur dans votre arborescence.
  5. Enregistrez vos résultats pour plus tard
  6. Répétez les étapes 3 à 6 pendant k fois en laissant un pli différent pour votre jeu de test.
  7. moyenne des erreurs à travers vos itérations pour prédire l'erreur globale

Le problème que je ne peux pas comprendre est qu'à la fin, vous aurez k arbres de décision qui pourraient tous être légèrement différents parce qu'ils pourraient ne pas se diviser de la même manière, etc. Quel arbre choisissez-vous? Une idée que j'avais était de choisir celui avec un minimum d'erreurs (bien que cela ne le rende pas optimal juste qu'il a le mieux performé sur le pli qu'il a été donné - peut-être que l'utilisation de la stratification aidera mais tout ce que j'ai lu dit que ça aide un peu).

Si je comprends bien la validation croisée, le but est de calculer dans les statistiques de nœuds qui peuvent ensuite être utilisées pour l'élagage. Donc vraiment chaque nœud de l'arbre aura des statistiques calculé pour lui sur la base de l'ensemble de test qui lui est donné. Ce qui est important sont ceux-ci dans les statistiques de nœud, mais si vous faites la moyenne de votre erreur. Comment fusionnez-vous ces statistiques dans chaque nœud à travers k arbres lorsque chaque arbre peut varier dans ce qu'ils choisissent de diviser, etc.

Quel est le point de calculer l'erreur globale à travers chaque itération? Ce n'est pas quelque chose qui pourrait être utilisé pendant la taille.

Toute aide avec cette petite ride serait très appréciée.

24
demandé sur chubbsondubs 2010-02-23 01:42:58

5 réponses

le problème que je ne peux pas comprendre est qu'à la fin, vous aurez k arbres de décision qui pourraient tous être légèrement différents car ils pourraient ne pas se diviser de la même manière, etc. Quel arbre choisissez-vous?

Le but de la validation croisée n'est pas d'aider à sélectionner une instance particulière du Classificateur (ou de l'arbre de décision, ou de toute autre application d'apprentissage automatique), mais plutôt de qualifier le modèle , c'est-à-dire de fournir des métriques telles que le taux d'erreur moyen, écart par rapport à cette moyenne, etc. ce qui peut être utile pour affirmer le niveau de précision que l'on peut attendre de l'application. L'une des choses que la validation croisée peut aider à affirmer est de savoir si les données de formation sont assez grandes.

En ce qui concerne la sélection d'un arbre particulier, Vous devriez plutôt exécuter une autre formation sur 100% des données d'entraînement disponibles, car cela produira généralement un meilleur arbre. (L'inconvénient de L'approche de Validation croisée est que nous devons diviser la quantité [typiquement petite] de données d'entraînement en "plis" et comme vous l'insinuez dans la question, cela peut conduire à des arbres qui sont soit suréquipés, soit sous-adaptés pour des instances de données particulières).

Dans le cas de l'arbre de décision, Je ne suis pas sûr de votre référence aux statistiques recueillies dans le nœud et utilisées pour élaguer l'arbre. Peut-être une utilisation particulière des techniques liées à la validation croisée?...

18
répondu mjv 2010-02-22 23:28:49

Pour la première partie, et comme les autres l'ont souligné, nous utilisons généralement l'ensemble de données entier pour construire le modèle final, mais nous utilisons cross-validation (CV) pour obtenir une meilleure estimation de l'erreur de généralisation sur les nouvelles données invisibles.

Pour la deuxième partie, je pense que vous confondez CV avec l'ensemble de validation , utilisé pour éviter de surajuster l'arbre en élagant un nœud quand une valeur de fonction calculée sur l'ensemble de validation n'augmente pas avant / après le Split.

5
répondu Amro 2010-02-24 03:58:35

Le point principal de l'utilisation de la validation croisée est qu'elle vous donne une meilleure estimation de la performance de votre modèle formé lorsqu'il est utilisé sur des données différentes.

Quel arbre choisissez-vous? Une option serait que vous bulid un nouvel arbre en utilisant toutes vos données pour l'ensemble de formation.

2
répondu Rockcoder 2010-02-22 23:10:01

Il a déjà été mentionné que le but de la validation croisée est de qualifier le modèle. En d'autres termes, la validation croisée nous fournit une estimation d'erreur/précision du modèle généré avec les "paramètres" sélectionnés indépendamment des données utilisées. Le processus de validation corss peut être répété en utilisant des paramètres déférents jusqu'à ce que nous soyons satisfaits de la performance. Ensuite, nous pouvons former le modèle avec les meilleurs paramètres sur l'ensemble des données.

2
répondu anonymous 2011-03-01 21:55:47

La validation croisée n'est pas utilisée pour buliding / élagage de l'arbre de décision. Il est utilisé pour estimer la qualité de l'arbre (Construit sur toutes les données) en simulant l'arrivée de nouvelles données (en construisant l'arbre sans certains éléments comme vous l'avez écrit). Je n'ai pas vraiment de sens de choisir l'un des arbres générés par celui-ci parce que le modèle est contraint par les données que vous avez (et ne pas tout utiliser pourrait être pire lorsque vous utilisez l'arbre pour de nouvelles données).
L'arbre est construit sur le les données que vous choisissez (habituellement tout cela). L'élagage est généralement effectué en utilisant une heuristique (c'est-à-dire que 90% des éléments du nœud appartiennent à la classe a, donc nous n'allons pas plus loin ou le gain d'information est trop faible).

1
répondu pablochan 2010-02-22 23:08:28