Calcul du rapport des échantillons de données utilisés pour l'ajustement / la formation et la validation du modèle


9

A fourni une taille d'échantillon "N" que je prévois d'utiliser pour prévoir les données. Quelles sont certaines des façons de subdiviser les données afin que j'en utilise une partie pour établir un modèle et les autres données pour valider le modèle?

Je sais qu'il n'y a pas de réponse en noir et blanc à cela, mais il serait intéressant de connaître certaines "règles empiriques" ou les ratios habituellement utilisés. Je sais de retour à l'université, l'un de nos professeurs avait l'habitude de dire modèle sur 60% et validation sur 40%.

Réponses:


7

Eh bien comme vous l'avez dit, il n'y a pas de réponse en noir et blanc. Je ne divise généralement pas les données en 2 parties, mais j'utilise plutôt des méthodes comme la validation croisée k-fold.

Dans la validation croisée k-fold, vous divisez vos données de manière aléatoire en k parties, ajustez votre modèle sur les parties k-1 et testez les erreurs sur la partie gauche. Vous répétez le processus k fois en laissant chaque pièce mal ajustée une par une. Vous pouvez prendre l'erreur moyenne de chacune des k itérations comme indication de l'erreur de modèle. Cela fonctionne très bien si vous souhaitez comparer la puissance prédictive de différents modèles.

Une forme extrême de validation croisée k-fold est la validation croisée généralisée où vous ne faites qu'exclure un point de données pour tester et ajuster le modèle à tous les points restants. Répétez ensuite le processus n fois en omettant chaque point de données un par un. Je préfère généralement la validation croisée k-fold à la validation croisée généralisée ... juste un choix personnel


2
CV utilisant l'ensemble complet pour la sélection du modèle, hein? C'est une erreur courante (même Wikipédia le mentionne encore), car il s'agit d'une sur-tenue cachée. Vous devez faire un CV de niveau supérieur ou laisser un test pour le faire correctement.

5

Cela dépend vraiment de la quantité de données dont vous disposez, du coût spécifique des méthodes et de la manière exacte dont vous souhaitez que votre résultat soit.

Quelques exemples:

Si vous avez peu de données, vous voudrez probablement utiliser la validation croisée (k-fold, laisser-un-out, etc.) Votre modèle ne prendra probablement pas beaucoup de ressources pour s'entraîner et tester de toute façon. Ce sont de bons moyens de tirer le meilleur parti de vos données

Vous avez beaucoup de données: vous voulez probablement prendre un ensemble de tests assez grand, en veillant à ce qu'il y ait peu de possibilité que certains échantillons étranges donnent beaucoup de variance à vos résultats. Combien de données devez-vous prendre? Cela dépend entièrement de vos données et de votre modèle. Dans la reconnaissance vocale par exemple, si vous preniez trop de données (disons 3000 phrases), vos expériences prendraient des jours, car un facteur temps réel de 7-10 est courant. Si vous en prenez trop peu, cela dépend trop des haut-parleurs que vous choisissez (qui ne sont pas autorisés dans le kit d'entraînement).

Souvenez-vous également que dans de nombreux cas, il est bon d'avoir également un ensemble de validation / développement!


5

Le rapport 1:10 test: train est populaire car il a l'air rond, 1: 9 est populaire en raison du CV 10 fois, 1: 2 est populaire car il est également rond et réassemble le bootstrap. Parfois, on obtient un test à partir de certains critères spécifiques aux données, par exemple l'année dernière pour les tests, des années avant pour la formation.

La règle générale est la suivante: le train doit être suffisamment grand pour que la précision ne baisse pas de manière significative et le test doit être suffisamment grand pour réduire au silence les fluctuations aléatoires.

Je préfère toujours CV, car il vous donne également une distribution d'erreur.


4

Dans le prolongement de la réponse k-fold, le choix «habituel» de k est soit 5 soit 10. La méthode du «laisser-sortir» a tendance à produire des modèles trop conservateurs. Pour info, voici une référence sur ce fait:

Shao, J. (1993), Linear Model Selection by Cross-Validation, Journal of the American Statistical Association, Vol. 88, n ° 422, pp. 486-494


Avez-vous même lu cet article? Néanmoins, cela ne fonctionne que pour les modèles linéaires (même le titre le montre!), Il s'agit d'un comportement asymptotique pour un nombre infini d'objets. 100 n'est pas suffisant.

1
Et je vous souhaite bonne chance en effectuant une validation croisée 10 fois sur un ensemble de 9 objets.

@mbq: Je dis le choix "habituel". Cela ne signifie pas tous les choix
Albort

@mbq: j'ai lu le journal; Shao rend compte d'une étude de simulation avec seulement 40 observations et montre que LOOCV sous-performe le CV Monte-Carlo sauf dans le cas où aucune sous-sélection n'est appropriée (l'ensemble complet des fonctionnalités est optimal). 100 est bien plus que suffisant, du moins pour la sélection de sous-ensembles dans les modèles linéaires.
shabbychef

@shabbychef Vous m'avez ici; le deuxième argument de mon premier commentaire est bien sûr une ordure, j'avais d'autres travaux en tête et trop généralisés. Néanmoins, je soutiendrai toujours que l'article de Shao n'est pas une bonne référence pour les "LOO échoue pour les grands N" car sa portée est réduite aux modèles linéaires.
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.