Comment savoir que votre problème d'apprentissage automatique est sans espoir?

207

Imaginez un scénario d’apprentissage automatique standard:

Vous êtes confronté à un vaste ensemble de données multivariées et vous en avez une compréhension assez floue. Ce que vous devez faire est de faire des prédictions sur certaines variables en fonction de ce que vous avez. Comme d'habitude, vous nettoyez les données, consultez des statistiques descriptives, exécutez certains modèles, effectuez des validations croisées, etc., mais après plusieurs tentatives, il semble que rien ne semble fonctionner et que vos résultats soient lamentables. Vous pouvez passer des heures, des jours ou des semaines sur un tel problème ...

La question est: quand arrêter? Comment vous savez que vos données sont en fait sans espoir et tous les modèles de fantaisie ne vous ferait pas plus de bien que de prédire le résultat moyen pour tous les cas ou une autre solution triviale?

Bien sûr, il s’agit d’un problème de prévisibilité, mais pour autant que je sache, il est difficile d’évaluer la prévisibilité pour des données multivariées avant d’essayer quelque chose. Ou ai-je tort?

Avertissement: cette question a été inspirée par celle-ci. Quand dois-je arrêter de chercher un modèle? cela n'a pas attiré beaucoup d'attention. Il serait bien d’avoir une réponse détaillée à cette question pour référence.

Tim
la source
1
Ce problème peut être résolu en termes pratiques (comme @StephanKolassa) ou en termes absolus (une sorte de théorème montrant qu'un modèle donné peut apprendre un problème si certaines conditions sont remplies). Lequel veut-tu?
Superbest
3
Cela ressemble-t-il au problème classique de l’informatique? Supposons que vous ayez un algorithme A de complexité arbitraire qui effectue une recherche dans les données d'entrée D à la recherche de modèles prédictifs et qu'il s'arrête lorsqu'il trouve un "bon" modèle pour les données. Sans ajouter une structure significative sur A et D, je ne vois pas comment vous pourriez dire si A arrêtera un jour l'entrée D, mais comment savoir si A finira par réussir ou continuer à chercher pour toujours?
Matthew Gunn
@Superbest il peut être les deux. Si vous avez quelque chose à ajouter, n'hésitez pas à y répondre. Je n'ai jamais entendu parler d'un théorème qui énonce quoi que ce soit à propos de la gestion de données bruyantes multidimensionnelles réelles, mais si vous en connaissez un qui s'applique, alors je serais intéressé de lire votre réponse.
Tim
3
Basé sur la réponse de @ StephenKolassa, vous pouvez également poser la question suivante: «À quel moment dois-je présenter mon travail aux experts en la matière et discuter de mes résultats (ou de l'absence de résultats)?
Robert de Graaf
Également lié à: stats.stackexchange.com/questions/28057/…
Jan Kukacka

Réponses:

240

Prévisibilité

Vous avez raison de dire qu'il s'agit d'une question de prévisibilité. Quelques articles sur la prévisibilité ont été publiés dans la revue Foresight, destinée aux praticiens . (Divulgation complète: je suis un éditeur associé.)

Le problème est que la prévisibilité est déjà difficile à évaluer dans des cas "simples".

Quelques exemples

Supposons que vous ayez une série chronologique comme celle-ci sans parler allemand:

des œufs

Comment modéliseriez-vous le pic atteint en avril et comment intégriez-vous ces informations dans les prévisions?

Si vous ne saviez pas que cette série chronologique représente les ventes d'œufs dans une chaîne de supermarchés suisse, qui culmine juste avant le calendrier occidental de Pâques , vous n'auriez aucune chance. De plus, avec Pâques déplaçant le calendrier de six semaines au maximum , toutes les prévisions qui n'incluent pas la date spécifique de Pâques (en supposant, par exemple, qu'il s'agissait simplement d'un pic saisonnier qui se reproduirait l'année suivante, une semaine spécifique) serait probablement très off.

De même, supposons que vous ayez la ligne bleue ci-dessous et que vous souhaitiez modéliser ce qui s'est passé le 2010-02-28 de manière si différente des modèles "normaux" du 2010-02-27:

partie de hockey

Encore une fois, sans savoir ce qui se passe quand une ville entière remplie de Canadiens regarde un match de la phase finale du hockey sur glace à la télévision, vous n’avez aucune chance de comprendre ce qui s’est passé ici, et vous ne pouvez pas prédire quand une telle chose va se reproduire.

Enfin, regardez ceci:

valeur aberrante

Il s’agit d’une série chronologique de ventes quotidiennes dans un magasin cash and carry . (Sur la droite, vous avez un tableau simple: 282 jours avaient zéro vente, 42 jours ont vu des ventes de 1 ... et un jour ont vu 500 ventes.) Je ne sais pas de quel article il s'agit.

À ce jour, je ne sais pas ce qui s'est passé ce jour-là avec des ventes de 500 exemplaires. Mon meilleur choix est qu'un client a déjà commandé une grande quantité de ce produit et l'a collecté. Maintenant, sans le savoir, toute prévision pour cette journée sera lointaine. Inversement, supposons que cela se soit produit juste avant Pâques et que nous ayons un algorithme stupide qui croit que cela pourrait être un effet de Pâques (peut-être que ce sont des œufs?) Et prévoit heureusement 500 unités pour la prochaine Pâques. Oh mon Dieu, est-ce que ça pourrait mal tourner?

Sommaire

Dans tous les cas, nous voyons que la prévisibilité ne peut être bien comprise que lorsque nous avons une compréhension suffisamment approfondie des facteurs susceptibles d’influencer nos données. Le problème est que si nous ne connaissons pas ces facteurs, nous ne savons pas que nous pourrions ne pas les connaître. Selon Donald Rumsfeld :

[L] es connus sont connus; il y a des choses que nous savons que nous savons. Nous savons également qu'il existe des inconnus connus; c'est-à-dire que nous savons qu'il y a des choses que nous ne savons pas. Mais il y a aussi des inconnus inconnus - ceux que nous ne savons pas que nous ne savons pas.

Si Pâques ou la prédilection des Canadiens pour le hockey sont des inconnues pour nous, nous sommes bloqués - et nous n'avons même pas d'avenir, car nous ne savons pas quelles questions nous devons poser.

La seule façon de les maîtriser est de rassembler les connaissances du domaine.

Conclusions

J'en tire trois conclusions:

  1. Vous devez toujours inclure la connaissance du domaine dans votre modélisation et vos prévisions.
  2. Même avec une connaissance du domaine, vous n'êtes pas assuré d'obtenir suffisamment d'informations pour que vos prévisions et vos prédictions soient acceptables pour l'utilisateur. Voir cette valeur aberrante ci-dessus.
  3. Si "vos résultats sont misérables", vous espérez peut-être plus que ce que vous pouvez obtenir. Si vous prévoyez un bon tirage au sort, il n’ya aucun moyen d’obtenir une précision supérieure à 50%. Ne faites pas confiance non plus aux points de référence externes en matière de précision des prévisions.

Le résultat final

Voici comment je recommanderais de construire des modèles - et de noter quand arrêter:

  1. Parlez à quelqu'un qui a une connaissance du domaine si vous ne l'avez pas déjà vous-même.
  2. Identifiez les principaux moteurs des données que vous souhaitez prévoir, y compris les interactions probables, en fonction de l'étape 1.
  3. Construisez des modèles de manière itérative, en incluant les pilotes dans un ordre de force décroissant, comme indiqué à l'étape 2. Évaluez les modèles à l'aide de la validation croisée ou d'un échantillon témoin.
  4. Si l’exactitude de vos prédictions n’augmente plus, revenez à l’étape 1 (par exemple, en identifiant des prédictions erronées flagrantes que vous ne pouvez pas expliquer et discutez-en avec l’expert du domaine), ou acceptez le fait que vous avez atteint la fin de votre processus. les capacités des modèles. La mise en caisse de votre analyse à l'avance aide.

Notez que je ne préconise pas l’essai de différentes classes de modèles si vos plateaux de modèles originaux. Généralement, si vous avez commencé avec un modèle raisonnable, utiliser quelque chose de plus sophistiqué ne rapportera pas un avantage considérable, mais pourrait simplement entraîner une «sur-adaptation sur le jeu de tests». J'ai souvent vu cela et d'autres personnes sont d'accord .

Stephan Kolassa
la source
10
+1 pour une réponse merveilleuse avec laquelle je suis totalement d'accord. Je ne l'accepte pas (encore) car j'espère toujours d'autres réponses puisque le problème est vaste.
Tim
1
Sûr. J'aimerais aussi connaître le point de vue de quelqu'un d'autre à ce sujet!
Stephan Kolassa
9
If you are forecasting a fair coin toss, then there is no way to get above 50% accuracy.. Vous avez tout dit là-bas.
Walfrat
3
En utilisant la connaissance du domaine, vous pouvez ajouter de nouvelles fonctionnalités aux deux premiers cas (par exemple, le temps écoulé avant Pâques et le nombre de téléspectateurs regardées par la télévision, bien que ce dernier ait besoin de prévoir lui-même) pour obtenir de bien meilleurs résultats. Dans les deux cas, la situation est sans espoir. La partie vraiment intéressante est de savoir comment distinguer les connaissances de domaine manquantes à partir d’un ensemble de données contenant de justes flips.
Karolis Juodelė
4
@ KarolisJuodelė: c'est exactement ce que je veux dire. Nous ne pouvons même pas savoir quand notre situation est sans espoir, à moins de parler à un expert ... et puis, parfois, l'expert ne peut pas nous aider non plus, et il y a des "inconnues inconnues" pour les experts, que quelqu'un d'autre pourrait éventuellement savoir.
Stephan Kolassa
57

La réponse de Stephan Kolassa est excellente, mais je voudrais ajouter qu’il existe aussi souvent une condition d’arrêt économique:

  1. Lorsque vous faites du ML pour un client et non pour le plaisir, vous devriez regarder le montant que le client est prêt à dépenser. S'il paie 5000 € à votre entreprise et que vous passez un mois à trouver un modèle, vous perdrez de l'argent. Cela semble banal, mais j’ai vu "il doit y avoir une solution !!!!" - pensée qui a conduit à d’énormes dépassements de coûts. Alors arrêtez quand l'argent est sorti et communiquez le problème à votre client.
  2. Si vous avez déjà travaillé, vous avez souvent le sentiment que ce qui est possible avec le jeu de données actuel. Essayez d’appliquer cela au montant que vous pouvez gagner avec le modèle. Si le montant est trivial ou net (par exemple, en raison du temps nécessaire pour collecter des données, développer une solution, etc.), vous devez arrêter.

Par exemple: un client a voulu prédire quand ses machines tombent en panne. Nous avons analysé les données existantes et trouvé essentiellement du bruit. Nous nous sommes plongés dans le processus et avons constaté que les données les plus critiques n’étaient pas enregistrées et qu’il était très difficile à collecter. Mais sans ces données, notre modèle était si pauvre que personne ne l'aurait utilisé et il a été mis en conserve.

Bien que je me suis concentré sur les aspects économiques lorsque je travaillais sur un produit commercial, cette règle s’appliquait également au monde universitaire ou à des projets amusants - bien que l’argent soit moins une préoccupation dans de telles circonstances, le temps reste un bien rare. Par exemple. dans le monde universitaire, vous devriez cesser de travailler lorsque vous ne produisez aucun résultat tangible et que vous en avez d'autres, des projets plus prometteurs que vous pourriez réaliser. Mais n'abandonnez pas ce projet - publiez également les résultats null ou "besoin de plus / autres données", ils sont également importants!

Christian Sauer
la source
1
+1 vraiment un bon point! Je suppose que toutes les réponses à cette question peuvent sembler "évidentes", mais je n'ai jamais vu nulle part toutes ces choses "évidentes" rassemblées pour référence.
Tim
3
En fait, cette règle d’arrêt s’applique également aux cas non commerciaux: par exemple, si vous effectuez une recherche, nos résultats ont également une valeur abstraite et une analyse "sans espoir" continue est également raisonnable uniquement si la valeur de votre analyse dépasse ce que vous cherchiez. aurait pu faire à la place. Donc, en fait, cet argument théorique de décision peut être plus général.
Tim
2
Je pense que "personne ne l'aurait utilisé et qu'il était en conserve" devrait probablement être remplacé par "personne ne l'aurait utilisé et qu'il était mis en conserve" - ​​était-ce votre intention?
Silverfish
2
Merci. Je dirais que ce n’est pas seulement une question de temps, mais aussi de pouvoir investir le temps différemment. Vous pourriez plutôt travailler sur un projet de recherche sur un autre médicament vital qui vous permettrait d'économiser votre temps, mais le public bénéficiera également des résultats, etc.
Tim
2
@ChristianSauer Dans mon expérience d'ingénieur, le problème d'une inadéquation entre les capteurs (cf jauges) et un objectif utile est probablement antérieur à l'invention du transistor.
Robert de Graaf
9

Il y a un autre moyen. Demande toi -

  1. Qui ou qu'est-ce qui fait les meilleures prévisions possibles de cette variable particulière? "
  2. Mon algorithme d'apprentissage automatique produit-il des résultats meilleurs ou moins bons que les meilleures prévisions?

Ainsi, par exemple, si vous avez un grand nombre de variables associées à différentes équipes de football et que vous essayez de prédire qui va gagner, vous pouvez consulter les cotes du bookmaker ou une forme de prédiction en provenance de la foule à comparer avec les résultats de votre apprentissage automatique. algorithme. Si vous êtes meilleur, vous pouvez être à la limite, sinon pire, il y a place à l'amélioration.

Votre capacité à améliorer dépend (en gros) de deux choses:

  1. Utilisez-vous les mêmes données que le meilleur expert pour cette tâche particulière?
  2. Utilisez-vous les données aussi efficacement que le meilleur expert dans cette tâche?

Cela dépend exactement de ce que j'essaie de faire, mais j'ai tendance à utiliser les réponses à ces questions pour orienter mon cheminement lors de la construction d'un modèle, en particulier s'il s'agit d'extraire plus de données que je peux utiliser ou de me concentrer. en essayant d'affiner le modèle.

Je suis d'accord avec Stephan sur le fait que la meilleure façon de le faire est de demander à un expert du domaine.

Gavin Potter
la source
1
En fait, votre réponse contredit la réponse de @StephanKolassa dans laquelle il fait référence à de la littérature suggérant que les repères de prévision sont plutôt trompeurs.
Tim
1
@ Tim: divulgation complète - ce lien est allé à un article sur les points de repère que j'ai écrit moi-même. Néanmoins, je maintiens mes conclusions: tous les indicateurs de précision de prévision de la demande que j'ai vus ont très probablement comparer des pommes à des oranges. Je suis donc un peu sceptique quant à la recherche de points de repère externes. De plus, je pense que cette réponse soulève un peu la question. Une fois que votre algorithme ML améliore "le plus connu", comment savez-vous si vous pouvez encore l’améliorer, ou si nous avons atteint Le plateau du désespoir?
Stephan Kolassa
1
Mon cas d'utilisation le plus récent était plutôt différent. J'essayais de prédire qui risquait de se tuer à la suite de leurs publications sur Internet. Il existe divers tests psychométriques que l’on peut utiliser pour évaluer la gravité de la dépression, comme le PHQ9. En tant que test médical largement utilisé, sa validité et sa fiabilité font l'objet de nombreux travaux, tels que "La validité PHQ-9 d'une mesure de la gravité de la dépression brève". J’ai trouvé que la fiabilité et les autres mesures de ce document constituaient un bon point de départ pour déterminer les résultats probables que l’apprentissage par la machine pourrait produire.
Gavin Potter
1
Vous avez raison, bien sûr, d’améliorer le "plus connu", il n’ya aucun moyen de dire s’il faut continuer à chercher un meilleur modèle. Mais selon mon expérience, il est assez rare que cela se produise dans une situation réelle. La majeure partie de mon travail semble consister à essayer d'appliquer des jugements d'experts à grande échelle en utilisant l'apprentissage automatique, sans essayer d'améliorer le meilleur expert du domaine.
Gavin Potter