Prédire les événements raresJe travaille avec un client sur un essai Pro. Ils travaillent à partir d'un ensemble de données d'environ 3 millions de lignes pour essayer de créer un modèle prédictif permettant de prédire les échecs, qui se produisent 0,1 % du temps (réponse binaire, facteurs continus). Les échecs sont mortels et accepteraient volontiers un modèle capable de capturer ces échecs, même au prix de la perte de passes.
J'ai utilisé à peu près tout ce que je sais faire. Pour réduire les temps d'exécution, ils ont sous-ensembleé le fichier d'origine jusqu'à 1 à 10 % des données d'origine, en essayant diverses techniques de pondération, Torch, XG Boost et Model Screening. Boosted Tree a donné le plus de succès, mais dans chaque cas, le modèle développé sur le sous-ensemble est trop surajusté pour être utile sur un ensemble de données de taille similaire mais particulièrement différent ou sur un ensemble de données plus grand.
Dois-je pondérer davantage (je pondère actuellement les réussites/échecs à 1/100), créer un sous-ensemble de données où les échecs sont surreprésentés ? Existe-t-il des hyperparamètres qui peuvent être définis de manière optimale pour ce type de modèle hautement déséquilibré ? Je recherche des conseils/orientations sur ce que je pourrais essayer avec cette personne. Merci.
Ré: Prédire les événements raresAvez-vous déjà essayé le module complémentaire de classification déséquilibrée ? J'ai joué avec il y a quelque temps et j'ai découvert qu'il améliorait les performances sur l'un de nos ensembles de données d'échantillons (lequel m'échappe maintenant). Je ne suis pas un expert de SMOTE ou de Tomek Links, mais j'ai trouvé que l'introduction de ce post Kaggle était utile pour comprendre les bases.
Cela devrait être une bonne prochaine étape si vous ne l’avez pas encore essayé.
Ré: Prédire les événements raresCes événements rares me font penser à la fiabilité, mais je ne suis pas sûr que ce soit la bonne voie à suivre. Vous avez donc des facteurs d'entrée continus au fil du temps, et de temps en temps, vous avez une défaillance. Qu'en est-il de certains outils de graphiques de contrôle, en particulier les graphiques de contrôle multivariés ? Essayez d'établir une corrélation entre le moment où une combinaison de facteurs se produit et les défaillances.
Ré: Prédire les événements raresAvez-vous examiné le seuil de décision dans le filtrage des modèles ? Il est utilisé dans la classification binaire. Vous pouvez voir comment différents seuils, 0,1 contre 0,5, impactent le modèle.
Ré: Prédire les événements raresAvez-vous envisagé d'utiliser le binôme gonflé à zéro dans la plateforme GenReg ? Avez-vous également envisagé des seuils de décision qui entraînent des taux de faux positifs de type I plus élevés ?
Ré: Prédire les événements raresDe plus, même si je ne l'ai pas encore regardé, si je suppose correctement, le récent webinaire de maîtrise de @Jason_Wiggins sur les modèles de comptage des défauts pourrait être utile : Faire le meilleur choix pour les modèles de comptage des défauts
Ré: Prédire les événements raresLe gonflement à zéro dans le registre de génération semble être une bonne approche, mais je ne suis pas sûr des temps d'exécution. Quel que soit le modèle que vous choisissez, assurez-vous d'utiliser le seuil de décision pour déterminer une coupure appropriée (sinon, la formule de prédiction suppose 50:50 pour l'un ou l'autre événement). Je vous enverrai un diaporama que j'ai préparé pour vous aider à décider de la coupure en fonction du rapport sur le seuil de décision.Ré: Prédire les événements raresDonc... Je ne sais pas si les enregistrements de 3M devraient être trop mauvais s'ils exécutent les modèles basés sur des professionnels sur une machine décente (et ne deviennent pas fous avec le nombre de facteurs). Je pense que vous avez ici quelques problèmes à prendre en compte.
Tout d'abord, ont-ils effectué un filtrage des facteurs ? Un arbre optimisé ou une forêt aléatoire devraient vous indiquer s'il y a des facteurs qui n'ont pas d'importance. Le fait de réduire ces facteurs réduira les temps d'ajustement.
Deuxièmement (ou peut-être à égalité pour la première place, je ne suis pas sûr), font-ils une validation croisée stratifiée ? Demandez-leur d'utiliser l'outil de configuration de colonne de validation pour créer une validation croisée TVT avec la réponse dans le champ de stratification. Cela permettra de garder le modèle honnête. J'aime avoir beaucoup de données dans le groupe d'entraînement et des quantités décroissantes dans les deux derniers.
Les types de modèles et les distributions suggérés sont tous de bonnes idées. Pour ce genre de choses, je pencherais plutôt pour les méthodes basées sur les arbres (Random Forest, Boosted Trees ou XGBoost) avec une graine aléatoire pour la reproductibilité. Elles sont conçues pour ces ensembles de données plus volumineux. Je pense que Jerry a une idée intéressante avec l'angle de fiabilité des événements rares. Vous pourriez également envisager ceci : https://youtu.be/Ac6E7da9igU
Concernant la pondération, je ne pense pas que vous alliez assez loin. En utilisant votre taux d'échec de 0,01 %, j'attribuerais aux données de réussite un poids de 0,0001 et à vos échecs un poids de 0,9999. Nous avons eu une période il y a quelque temps où cela s'est produit et la directive (tribale, je l'admets) était de mettre la colonne de réponse dans la distribution et d'inverser les proportions (ce que je décris dans cette deuxième phrase). Cela semble avoir plutôt bien fonctionné.
Enfin, peut-être juste pour reformuler la situation, les évaluations sont plus fluides lorsqu'elles visent à leur donner confiance dans leur capacité à trouver la solution à leur problème. Elles visent moins à les amener à franchir la ligne d'arrivée de leur problème. Je pense que nous savons tous les deux que quelque chose comme cela va demander quelques cycles d'apprentissage de leur part et que cela dépassera probablement le temps restant de l'évaluation. Si vous vous concentrez sur le fait de leur donner confiance dans leur capacité à trouver une solution avec Pro, ils achèteront même si vous n'obtenez pas « le modèle » pour leur problème.
Ré: Prédire les événements raresMerci à tous pour vos contributions (jusqu'à présent) ! J'ai utilisé un certain nombre des idées énumérées ci-dessous pour résoudre ce problème, mais pas toutes et pas de la manière recommandée. J'apprécie vos conseils.