Validation croisée: K-fold vs sous-échantillonnage aléatoire répété


10

Je me demande quel type de validation croisée de modèle choisir pour un problème de classification: K-fold ou sous-échantillonnage aléatoire (échantillonnage bootstrap)?

Ma meilleure supposition est d'utiliser 2/3 de l'ensemble de données (soit environ 1000 éléments) pour la formation et 1/3 pour la validation.

Dans ce cas, K-fold ne donne que trois itérations (plis), ce qui n'est pas suffisant pour voir une erreur moyenne stable.

D'un autre côté, je n'aime pas la fonction de sous-échantillonnage aléatoire: certains éléments ne seront jamais sélectionnés pour la formation / validation, et certains seront utilisés plus d'une fois.

Algorithmes de classification utilisés: forêt aléatoire et régression logistique.


1
Je suppose qu'une question préalable est: cette sélection ne dépend-elle pas de l'algorithme (principalement son comportement) évalué?
Rubens

1
@ Rubens, j'ai mis à jour la question: je suis
intéressé par la

Réponses:


7

Si vous disposez d'un nombre suffisant d'échantillons et que vous souhaitez utiliser toutes les données, la validation croisée k-fold est la solution. Avoir ~ 1 500 semble beaucoup, mais le fait qu'il soit adéquat pour la validation croisée k-fold dépend également de la dimensionnalité des données (nombre d'attributs et nombre de valeurs d'attribut). Par exemple, si chaque observation a 100 attributs, alors 1 500 observations sont faibles.

Un autre inconvénient potentiel de la validation croisée k-fold est la possibilité d'une seule valeur extrême extrême faussant les résultats. Par exemple, si vous avez une valeur aberrante extrême qui peut fortement biaiser votre classificateur, alors dans une validation croisée 10 fois, 9 des 10 partitions seront affectées (bien que pour les forêts aléatoires, je ne pense pas que vous auriez ce problème ).

Un sous-échantillonnage aléatoire (par exemple, un échantillonnage bootstrap) est préférable lorsque vous êtes sous-échantillonné ou lorsque vous avez la situation ci-dessus, où vous ne voulez pas que chaque observation apparaisse dans les plis k-1.


4

Je suppose que vous dites que vous souhaitez utiliser la validation croisée triple parce que vous savez quelque chose sur vos données (que l'utilisation de k = 10 entraînerait un sur-ajustement? Je suis curieux de votre raisonnement). Je ne suis pas sûr que vous le sachiez, sinon vous pouvez simplement utiliser un k plus grand.

Si vous pensez toujours que vous ne pouvez pas utiliser la validation croisée standard de k-fold, vous pouvez modifier un peu l'algorithme: dites que vous divisez les données en 30 plis et utilisez chaque fois 20 pour la formation et 10 pour l'évaluation (puis passez à la vitesse supérieure) un pli et utilisez le premier et le dernier 9 comme évaluation et le reste comme formation). Cela signifie que vous pouvez utiliser toutes vos données.

Lorsque j'utilise la validation croisée k-fold, j'exécute généralement le processus plusieurs fois avec une randomisation différente pour m'assurer que j'ai suffisamment de données, si vous ne le faites pas, vous verrez des performances différentes en fonction de la randomisation. Dans de tels cas, je suggère un échantillonnage. L'astuce consiste alors à le faire assez souvent.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.