Défis industrie vs Kaggle. Est-ce que collecter plus d'observations et avoir accès à plus de variables est plus important que la modélisation de fantaisie?


56

J'espère que le titre est explicite. Dans Kaggle, la plupart des gagnants utilisent l’empilement avec parfois des centaines de modèles de base pour réduire au minimum quelques points de pourcentage de MSE, de précision ... En général, selon votre expérience, l’importance de la modélisation sophistiquée telle que l’empilement par rapport à la simple collecte de plus de données et de fonctionnalités pour les données?


4
Tout dépend si vous voulez un flux généralisable utile pouvant être reconverti rapidement (ou reciblé vers un nouvel ensemble de données ou de nouvelles fonctionnalités), ou simplement gagner cette compétition spécifique de Kaggle (sur cet ensemble de données statique spécifique, avec des exploits de fuite, des "fonctionnalités magiques" et tout). Pour les premiers, un algorithme qui obtient la même précision approximative avec un temps d’entraînement beaucoup plus court et avec un jeu de données plus petit est «meilleur». Imaginez si Kaggle commençait déjà à punir des exigences excessives en calcul / mémoire ou en temps d’entraînement, ou à en tenir compte dans le cadre du score de soumission (je suggère qu’ils le devraient déjà).
smci

2
Tiré de "Appliquer l'apprentissage en profondeur aux problèmes du monde réel" de Rasmus Rothe: "[…] dans des scénarios réels, il est moins important de montrer que votre nouvel algorithme réduit de 1% les performances supplémentaires par rapport à une autre méthode. consiste à construire un système robuste qui résout la tâche requise avec une précision suffisante. "
beatngu13

Réponses:


77

En guise de fond, je fais des séries de prévisions magasin SKU pour les ventes au détail depuis 12 ans maintenant. Des dizaines de milliers de séries chronologiques dans des centaines ou des milliers de magasins. J'aime dire que nous utilisons le Big Data depuis avant que le terme ne devienne populaire.×

J'ai toujours trouvé que le plus important était de comprendre vos données . Si vous ne comprenez pas les principaux moteurs tels que Pâques ou les promotions, vous êtes condamné. Cela revient souvent assez souvent à comprendre le métier spécifique pour poser les bonnes questions et dire des inconnus connus à partir d'inconnus inconnus .

Une fois que vous avez compris vos données, vous devez travailler pour obtenir des données propres . J'ai supervisé un grand nombre de juniors et de stagiaires, et la seule chose qu'ils n'avaient jamais vue dans tous leurs cours de statistiques et de science des données, c'était la quantité de merde que peuvent contenir ces données. Ensuite, vous devez soit retourner à la source et essayer de la faire produire de bonnes données, soit essayer de la nettoyer, ou même simplement jeter des données. Changer un système en cours d'exécution pour produire de meilleures données peut être étonnamment difficile.

Une fois que vous avez compris vos données et que vous avez en réalité des données relativement propres, vous pouvez commencer à les manipuler. Malheureusement, à ce stade, je me suis souvent retrouvé à court de temps et de ressources.

Personnellement, je suis un grand partisan de la combinaison de modèles ("empilage"), du moins dans un sens abstrait , moins dans celui de l'ingénierie des fonctions sophistiquées, qui passe souvent au- - et même si votre modèle plus sophistiqué fonctionne légèrement mieux en moyenne, on constate souvent que les très mauvaises prédictions s’aggravent avec un modèle plus complexe. C'est un dealbreaker dans mon secteur d'activité. Une seule très mauvaise prévision peut assez complètement détruire la confiance dans l'ensemble du système, donc la robustesse est extrêmement élevée dans ma liste de priorités. Votre kilométrage peut varier.

Dans mon expérience, oui, la combinaison de modèles peut améliorer la précision. Cependant, les deux premières étapes sont très rentables: comprendre vos données et les nettoyer (ou obtenir des données propres en premier lieu).


4
@bendl, YMMV signifie que votre kilométrage peut varier . L’énoncé de la phrase qui précède peut être plus ou moins vrai ou non selon les circonstances.
Orphevs

2
106

2
Peu importe que l'expérience en classe seulement. De nombreux professionnels de l'industrie expérimentés principalement dans des contextes de ratio signal sur bruit élevé, tels que la reconnaissance d'image, essaient d'appliquer les mêmes méthodes à des processus sociaux bruyants, tels que le recrutement, pour l'amour de Dieu.
Équilibre Brash

2
@ Orphevs En d'autres termes, cette déclaration pourrait être trop adaptée à ma situation et ne pas être généralisée. : P
JAD

2
(+1) En ce qui concerne le problème du nettoyage des données avec les nouveaux diplômés, il convient également de noter que pendant mes études, il était facile de sortir en pensant que le nettoyage des données était une mauvaise chose. En d’autres termes, le nettoyage des données peut fortement affecter les taux d’erreur de type I (en particulier s’il ya un biais dans le processus de nettoyage) et nous avons donc appris les dangers du nettoyage des données. Ces leçons n'étaient pas fausses, mais je ne pense pas que mes études aient mis l'accent sur les avantages du nettoyage des données, en particulier dans le cas de la modélisation prédictive.
Cliff AB

42

Je ne peux évidemment pas parler au nom de l'ensemble du secteur, mais comme je travaille dans l'industrie et que j'ai concouru pour Kaggle, je vais donc partager mon point de vue.

Tout d'abord, vous avez raison de penser que Kaggle ne correspond pas exactement à ce que les gens font dans l'industrie. C'est un jeu, soumis à la malédiction, avec beaucoup de restrictions folles. Par exemple, dans la compétition actuelle de Santander :

  1. Les noms des fonctionnalités ont été hachés artificiellement pour masquer leur signification
  2. L'ensemble de "formation" a été artificiellement limité pour comporter moins de lignes que de colonnes, de sorte que la sélection des fonctionnalités, la robustesse et la technique de régularisation seraient indispensables au succès.
  3. La série dite de "test" a une distribution très différente de celle de la formation et les deux ne sont clairement pas des échantillons aléatoires de la même population.

Si quelqu'un me donnait un tel ensemble de données au travail, je lui proposerais immédiatement de travailler avec lui sur l'ingénierie des fonctionnalités afin que nous puissions obtenir des fonctionnalités plus utiles. Je suggérerais que nous utilisions la connaissance du domaine pour décider des termes d’interaction probables, des seuils, des stratégies de codage de variables catégoriques, etc. Il serait évidemment plus productif de traiter le problème de cette manière que d’extraire de la signification à partir d’un fichier exhaustif produit par un ingénieur de base de données. formation en ML.

En outre, si vous apprenez, par exemple, qu’une colonne numérique particulière n’est pas du tout numérique, mais plutôt un code postal, vous pouvez obtenir des données provenant de sources de données tierces, telles que le recensement des États-Unis, pour compléter vos données. Ou, si vous avez une date, vous pourrez peut-être inclure le cours de clôture du S & P 500 pour cette journée. De telles stratégies d'augmentation externe nécessitent une connaissance détaillée de l'ensemble de données spécifique et une connaissance de domaine importante, mais ont généralement des avantages beaucoup plus importants que les améliorations purement algorithmiques.

Ainsi, la première grande différence entre l'industrie et Kaggle est que, dans l'industrie, les fonctionnalités (en termes de données d'entrée) sont négociables.

Une deuxième catégorie de différences est la performance. Les modèles sont souvent déployés en production de deux manières: 1) les prédictions de modèle sont pré-calculées pour chaque ligne dans une très grande table de base de données, ou 2) une application ou un site Web transmettra au modèle une seule ligne de données et besoin d'une prédiction retournée en temps réel. Les deux cas d'utilisation nécessitent de bonnes performances. Pour ces raisons, vous ne voyez pas souvent de modèles pouvant être lents à prévoir ou utilisant une quantité de mémoire énorme comme K-Nearest-Neighbours ou Extra Random Forests. En revanche, une régression logistique ou un réseau neuronal peuvent marquer un lot d'enregistrements avec quelques multiplications matricielles, et la multiplication matricielle peut être hautement optimisée avec les bonnes bibliothèques.Même si je pouvais obtenir +0,001 AUC si j'empilais un autre modèle non paramétrique, je ne le ferais pas, car le débit de prédiction et la latence chuteraient trop.

Cela comporte également une dimension de fiabilité: empiler quatre bibliothèques tierces tierces à la pointe de la technologie , telles que LightGBM , xgboost , catboost et Tensorflow (sur des GPU , bien sûr) pourrait vous faire bénéficier de cette réduction de 0,01 en MSE. remporte les compétitions Kaggle, mais il existe quatre bibliothèques différentes à installer, déployer et déboguer en cas de problème. C'est formidable de pouvoir utiliser tout ce matériel sur votre ordinateur portable, mais le faire fonctionner dans un conteneur Docker fonctionnant sur AWS est une histoire complètement différente. La plupart des entreprises ne souhaitent pas mettre en place une petite équipe de développement pour se consacrer uniquement à ce type de problèmes de déploiement.

Cela dit, empiler en soi n’est pas nécessairement une grosse affaire. En fait, empiler deux modèles différents qui fonctionnent tous aussi bien mais dont les limites de décision sont très différentes est un excellent moyen d’obtenir une petite augmentation de l’AUC et une grande augmentation de la robustesse. Il suffit de ne pas jeter autant d'éviers de cuisine dans votre ensemble hétérogène que vous commencez à avoir des problèmes de déploiement.


Note mineure, je pense que votre point n ° 2 manque la fin de la phrase?
mbrig

20

D'après mon expérience, plus de données et plus de fonctionnalités sont plus importantes que les modèles les plus fantaisistes, les plus empilés et les plus optimisés.

Regardez les concours de publicité en ligne qui ont eu lieu. Les modèles gagnants étaient si complexes qu'ils ont nécessité toute une semaine de formation (sur un très petit jeu de données, par rapport au standard de l'industrie). De plus, la prédiction dans un modèle empilé est plus longue que dans un modèle linéaire simple. Sur le même sujet, rappelez-vous que Netflix n’a jamais utilisé son algorithme 1M $ en raison de coûts d’ingénierie .

Je dirais que les compétitions en ligne sur la science des données sont un bon moyen pour une entreprise de savoir "quelle est la plus grande précision (ou toute métrique de performance) pouvant être obtenue" en utilisant les données qu’elles collectent (à un moment donné). Notez qu’il s’agit d’un problème difficile à résoudre! Toutefois, dans l’industrie, les connaissances sur le terrain, le matériel et les contraintes commerciales découragent généralement l’utilisation de la «modélisation sophistiquée».


2
Il est vrai que le processus de collecte de données est en constante évolution. Ce qui voudrait dire que les algorithmes actuellement utilisés seraient obsolètes (en plus du coût d'ingénierie ou du temps de formation, comme vous l'avez indiqué). Ainsi, des algorithmes plus simples, plus rapides et plus flexibles seraient nécessaires.
Tom

4
J'ai entendu l'un des points principaux de ce message, résumé comme suit: "une bonne sélection de variables l'
emportera

14

L'empilement augmente considérablement la complexité et réduit les possibilités d'interprétation. Les gains sont généralement relativement faibles pour le justifier. Ainsi, bien que l’ensemblage soit probablement largement utilisé (par exemple, XGBoost), je pense que l’empilement est relativement rare dans l’industrie.


1
Bon point. L'interprétation est extrêmement importante dans mes applications (les gérants de magasins veulent comprendre pourquoi les prévisions sont telles quelles), de sorte que les modèles difficiles à interpréter posent problème.
S. Kolassa - Réintégrer Monica

Merci pour les idées personnelles Stephan. Bien que j’ai considéré que l’interprétabilité diminuait ou disparaissait à mesure que la complexité du modèle augmentait, je ne pensais pas aux contraintes de temps qui sont certainement plus pressantes dans une entreprise. La modélisation de fantaisie a probablement le pire ratio de (précision gagnée) / (temps passé).
Tom

8

D'après mon expérience, collecter de bonnes données et fonctionnalités est beaucoup plus important.

Les clients avec lesquels nous avons travaillé ont généralement beaucoup de données, et pas toutes dans un format facile à exporter ou à utiliser. Le premier lot de données n’est généralement pas très utile; Il est de notre devoir de travailler avec le client pour déterminer les données dont nous aurions besoin pour rendre le modèle plus utile. C'est un processus très itératif.

Il y a beaucoup d'expérimentation en cours et nous avons besoin de modèles qui sont:

  1. Rapide à former
  2. Rapide à prévoir (est également souvent une exigence de l'entreprise)
  3. Facile à interpréter

Le point 3) est particulièrement important, car les modèles faciles à interpréter sont plus faciles à communiquer au client et il est plus facile à détecter si nous avons commis une erreur.


7

Voici quelque chose qui ne vient pas beaucoup sur Kaggle: le

  • plus de variables que vous avez dans votre modèle, et
  • plus la relation entre ces variables et la sortie est complexe,

le risque plus vous ferez face pendant toute la durée de ce modèle. Le temps est généralement soit figé dans les compétitions Kaggle, soit il existe une courte fenêtre temporelle dans laquelle les valeurs des ensembles de tests entrent en jeu. Dans l'industrie, ce modèle peut durer des années. Et tout ce qu’il faudrait peut-être, c’est qu’une variable disparaisse pour que votre modèle entier aille au diable, même si elle a été construite parfaitement. Je comprends que personne ne veuille assister à un concours où les concurrents comparent soigneusement la complexité du modèle au risque, mais si vous travaillez dans un emploi, votre entreprise et votre qualité de vie en souffriront si quelque chose ne va pas avec le modèle dont vous êtes responsable. Même les personnes extrêmement intelligentes ne sont pas à l'abri. Prenez, par exemple, l' échec de la prévision de Google Flu Trends . Le monde a changé et ils ne l'ont pas vu venir.

A la question d'OP, " En général, selon votre expérience, quelle est l'importance d'une modélisation sophistiquée telle que l'empilement par rapport à la simple collecte de plus de données et de fonctionnalités pour les données? " Eh bien, je suis officiellement vieux, mais ma réponse est que si vous n'avez pas Pour une infrastructure de modélisation vraiment robuste, il est préférable d’avoir des modèles simples, avec un ensemble minimal de variables, dans lesquels la relation entrée-sortie est relativement simple. Si une variable améliore à peine votre métrique de perte, laissez-la de côté. Rappelez-vous que c'est un travail. En dehors du travail, commencez à vous rendre aux concours Kaggle, où il y a l'incitatif «Allez-y ou rentrez chez vous».

Une exception serait si la situation commerciale exigeait un certain niveau de performances de modèle, par exemple si votre société devait égaler ou surpasser les performances d'un concurrent pour obtenir un avantage (probablement en marketing). Mais lorsqu'il existe une relation linéaire entre la performance du modèle et le gain commercial, l'augmentation de la complexité ne justifie généralement pas le gain financier (voir " Netflix n'a jamais utilisé son algorithme d'un million de dollars en raison des coûts d'ingénierie " - excuses à @ RUser4512 pour avoir invoqué le même principe. article). Dans une compétition Kaggle, ce gain supplémentaire peut vous faire changer de rang au fur et à mesure que vous passez devant les solutions proches.


3

Une réponse courte qui est une citation du livre Deep Thinking de Gary Kasparov qui me plait.

Un processus intelligent bat des connaissances supérieures et une technologie supérieure

Je travaille principalement avec des données financières de séries chronologiques, et le processus de collecte, de nettoyage, de traitement des données, puis de travail avec les propriétaires du problème, afin de déterminer ce qu’ils souhaitent réellement faire, puis de créer des fonctionnalités et des modèles pour les résoudre. le problème et enfin d’examiner rétrospectivement le processus à améliorer pour la prochaine fois.

Tout ce processus est supérieur à la somme de ses parties. J'ai tendance à obtenir des performances de généralisation «acceptables» avec une régression linéaire / logistique et à parler avec des experts du domaine pour générer des fonctionnalités, temps bien plus avantageux que de passer du temps à adapter mon modèle aux données dont je dispose.

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.