Je travaille sur un projet de Machine Learning avec des données déjà (fortement) biaisées par la sélection des données.
Supposons que vous ayez un ensemble de règles codées en dur. Comment construire un modèle d'apprentissage automatique pour le remplacer, alors que toutes les données qu'il peut utiliser sont des données déjà filtrées par ces règles?
Pour clarifier les choses, je suppose que le meilleur exemple serait l' évaluation du risque de crédit : la tâche consiste à filtrer tous les clients susceptibles de ne pas effectuer de paiement.
- Maintenant, les seules données (étiquetées) que vous avez proviennent de clients qui ont été acceptés par l'ensemble de règles, car ce n'est qu'après avoir accepté que vous verrez si quelqu'un paie ou non (évidemment). Vous ne savez pas à quel point l'ensemble de règles est bon et dans quelle mesure elles affecteront la distribution payée à non payée. En outre, vous disposez de données non étiquetées provenant des clients qui ont été refusées, toujours en raison de l'ensemble de règles. Vous ne savez donc pas ce qui se serait passé avec ces clients s'ils avaient été acceptés.
Par exemple, l'une des règles pourrait être: "Si l'âge du client <18 ans, alors n'acceptez pas"
Le classificateur n'a aucun moyen d'apprendre à gérer les clients qui ont été filtrés par ces règles. Comment le classificateur est-il censé apprendre le modèle ici?
Ignorer ce problème entraînerait l'exposition du modèle à des données qu'il n'a jamais rencontrées auparavant. Fondamentalement, je veux estimer la valeur de f (x) lorsque x est en dehors de [a, b] ici.
la source
Réponses:
Vous avez raison de vous inquiéter - même les meilleurs modèles peuvent échouer de façon spectaculaire si la distribution des données hors échantillon diffère considérablement de la distribution des données sur lesquelles le modèle a été formé / testé.
Je pense que le mieux que vous puissiez faire est de former un modèle sur les données étiquetées que vous avez, mais essayez de garder le modèle interprétable. Cela signifie probablement être limité aux modèles simples. Ensuite, vous pourriez essayer de raisonner comment les règles apprises par votre modèle pourraient interagir avec les règles antérieures que vous aviez, afin d'estimer dans quelle mesure votre modèle pourrait fonctionner sur la population non filtrée.
Par exemple, supposez que votre modèle constate que dans votre ensemble de données étiqueté, plus le client est jeune, plus il est probable qu'il était par défaut. Ensuite, il peut être raisonnable de supposer que votre modèle fonctionnera bien si vous avez supprimé le filtre précédent "Si l'âge du client <18 ans, alors n'acceptez pas".
la source
Je ne suis pas sûr de bien comprendre cette question, mais pour autant que je la comprenne, vous demandez comment former un classificateur à prédire sur des échantillons se trouvant en dehors du domaine des échantillons qu'il a déjà vus. Ce n'est généralement pas possible et pour autant que je sache. La théorie de l'apprentissage automatique est basée sur l'idée de «minimisation empirique des risques», qui se résume à supposer que votre ensemble de formation est une bonne approximation de votre distribution réelle sur des échantillons et des étiquettes. Si cette hypothèse est violée, il n'y a vraiment aucune garantie.
Vous mentionnez des données non étiquetées - je ne sais pas si cela résoudrait votre problème, mais l'apprentissage semi-supervisé a de nombreuses méthodes pour essayer d'apprendre les classificateurs étant donné des données étiquetées et non étiquetées, et vous voudrez peut-être envisager de les examiner (par exemple , SVM transductifs).
la source
Vos règles peuvent vous donner un moyen d'effectuer une augmentation des données . Copiez un échantillon positif, changez l'âge à 17 ans, puis marquez-le comme un échantillon négatif.
Cette procédure ne sera pas nécessairement triviale ou utile pour tous les ensembles de données. Je travaille avec des données NLP et c'est difficile de bien faire dans ce domaine. Par exemple, si vous avez d'autres fonctionnalités en corrélation avec l'âge, vous pouvez vous retrouver avec des échantillons irréalistes. Cependant, il fournit une avenue pour exposer le système à quelque chose comme les échantillons qui ne l'ont pas fait dans l'ensemble de données.
la source
Une chose qui a fonctionné pour nous dans une situation similaire est de faire un peu d'apprentissage par renforcement (explorer et exploiter). En plus du modèle basé sur des règles, nous avons exécuté un explorateur qui, avec une faible probabilité, changerait la réponse du modèle, donc dans des cas occasionnels où le modèle ne recommanderait pas une carte à un jeune de 17 ans, l'explorateur renverserait le modèle décision et délivrer une carte. À partir de ces cas occasionnels, vous générez des données d'apprentissage pour un futur modèle d'apprentissage où elles peuvent être utilisées pour décider de recommander des cartes pour les 17 ans selon que celles qui ont été émises à 17 ans par l'explorateur ne sont pas par défaut et vous pouvez donc construire des systèmes qui peuvent fonctionner en dehors des biais de votre modèle existant.
la source
D'un point de vue pratique, il est difficile / déraisonnable de demander à un modèle de prédire quelque chose sur des cas qui ne sont pas possibles dans le système actuel (pas de déjeuner gratuit).
Une façon de contourner ce problème consiste à ajouter la randomisation au système actuel (déployé), par exemple à ajouter la possibilité de contourner (certaines) les règles avec une faible probabilité contrôlée (et donc un coût prévisible).
Une fois que vous avez réussi à convaincre les personnes responsables du système de le faire, vous pouvez utiliser des méthodes d'évaluation hors politique, comme l' échantillonnage par importance, pour poser des questions «et si». Par exemple, quel serait le risque de crédit attendu si nous permettions aux personnes actuellement exclues par les règles de prendre un crédit. On peut même simuler l'effet de votre modèle de prédiction (biaisé) sur cette population. Une bonne référence pour ce type de méthodes est le document de Bottou sur l'apprentissage et le raisonnement contrefactuels.
la source
La réponse statistique classique est que si le processus de sélection est dans les données et décrit par le modèle ou que la sélection est aléatoire, le modèle paramétrique le considère correctement. Voir l'article de Donald Rubin Inference and Missing data (1976). Vous devez inclure le mécanisme de sélection des données dans votre modèle. C'est un domaine où l'inférence paramétrique devrait faire mieux que le machine learning pur.
la source
Cela s'apparente au dilemme de l'après-vie: quel rapport de bonnes et de mauvaises actions (données) est suffisant pour aller au paradis plutôt qu'en enfer (classe), après la mort (filtre!). Ici, la mort sert de filtre, conduisant à des valeurs manquantes vers un programme d'apprentissage supervisé.
Je veux lever l'ambiguïté entre le problème de la valeur manquante et le problème des «données biaisées». Il n'y a pas de données biaisées, il existe un «modèle biaisé» expliquant lesdites données, mais les données elles-mêmes ne sont pas biaisées, elles sont simplement manquantes. Si les données manquantes sont significativement corrélées à des données observables, il est alors tout à fait possible de former un modèle non biaisé et d'obtenir de bons résultats prédictifs.
Si les données manquantes ne sont absolument pas corrélées avec des données observables, il s'agit alors de «vous ne savez pas ce que vous ne savez pas». Vous ne pouvez utiliser ni méthodes d'apprentissage supervisées, ni supervisées. Le problème est en dehors des domaines de la science des données.
Par conséquent, dans un souci de solution significative, supposons que les données manquantes sont corrélées avec des données observables. Nous exploiterons cette corrélation.
Il existe plusieurs algorithmes d'exploration de données qui tentent de résoudre un tel problème. Vous pouvez essayer des «méthodes d'ensemble» comme Bagging-n-Boosting ou des algorithmes «d'exploration de modèles fréquents» comme Apriori et FP-growth. Vous pouvez également explorer des méthodes dans Statistiques robustes.
la source