Apprentissage supervisé avec des événements «rares», lorsque la rareté est due au grand nombre d'événements contrefactuels

13

Supposons que vous puissiez observer les «correspondances» entre acheteurs et vendeurs sur un marché. Vous pouvez également observer les caractéristiques des acheteurs et des vendeurs que vous souhaitez utiliser pour prédire les correspondances futures et faire des recommandations aux deux côtés du marché.

Pour simplifier, supposons qu'il y ait N acheteurs et N vendeurs et que chacun trouve une correspondance. Il y a N correspondances et (N-1) (N-1) non-correspondances. L'ensemble de données de formation tout compris contient N + (N-1) * (N-1) observations, qui peuvent être prohibitives. Il semblerait que l'échantillonnage aléatoire des non-correspondances (N-1) (N-1) et l'apprentissage d'un algorithme sur ces données réduites pourraient être plus efficaces. Mes questions sont:

(1) L'échantillonnage à partir des non-correspondances pour créer un ensemble de données d'apprentissage est-il un moyen raisonnable de résoudre ce problème?

(2) Si (1) est vrai, existe-t-il un moyen rigoureux de décider de la taille d'un morceau de (N-1) (N-1) à inclure?

John Horton
la source

Réponses:

11

Si je comprends bien, vous avez un problème de classification à deux classes, où la classe positive (correspondances) est rare. De nombreux classificateurs sont confrontés à un tel déséquilibre de classe, et il est courant de sous-échantillonner la classe majoritaire afin d'obtenir de meilleures performances, donc la réponse à la première question est "oui". Cependant, si vous sous-échantillonnez trop, vous vous retrouverez avec un classificateur qui surestimera la classe positive de la minorité, donc la meilleure chose à faire est de choisir la ration de sous-échantillonnage pour maximiser les performances, peut-être en minimisant la erreur de validation lorsque les données de test n'ont pas été sous-échantillonnées , vous obtenez donc une bonne indication des performances opérationnelles.

Si vous avez un classificateur probabiliste, qui donne une estimation de la probabilité de l'appartenance à une classe, vous pouvez aller encore mieux et post-traiter la sortie pour compenser la différence entre les fréquences de classe dans l'ensemble d'entraînement et en fonctionnement. Je soupçonne que pour certains classificateurs, l'approche optimale consiste à optimiser à la fois le taux de sous-échantillonnage et la correction de la sortie en optimisant l'erreur de validation croisée.

Plutôt que de sous-échantillonnage, pour certains classificateurs (par exemple SVM), vous pouvez attribuer des poids différents aux modèles positifs et négatifs. Je préfère cela au sous-échantillonnage car cela signifie qu'il n'y a pas de variabilité dans les résultats en raison du sous-échantillon particulier utilisé. Lorsque cela n'est pas possible, utilisez le bootstrap pour créer un classificateur ensaché, où un sous-échantillon différent de la classe majoritaire est utilisé à chaque itération.

La seule autre chose que je dirais, c'est que généralement là où il y a un grand déséquilibre de classe, les fausses erreurs négatives et les fausses erreurs positives ne sont pas également mauvaises, et c'est une bonne idée de les intégrer dans la conception du classificateur (qui peut être accompli - modèles d'échantillonnage ou de pondération appartenant à chaque classe).

Dikran Marsupial
la source
3
(+1), mais je pense qu'il faut faire la différence entre l'objectif de classement (mesure: ASC) et la séparation des deux classes (mesure: précision). Dans le premier cas, étant donné un classeur probabiliste comme Naive Bayes, le déséquilibre joue un rôle moindre, je suppose. Ou faut-il aussi s'inquiéter dans ce cas? Une autre question: que voulez-vous dire par "post-traiter la sortie"? Conversion des scores en probabilités réelles?
steffen
@Steffen Mon intuition est que le problème de déséquilibre de classe est moins un problème de classement, mais qu'il ne disparaîtra pas complètement (je travaille sur un document sur ce problème, donc c'est quelque chose qui mérite d'être résolu). Par post-traitement, je voulais dire multiplier les sorties par le rapport des fréquences des classes des ensembles opérationnels et d'entraînement, puis re-normaliser de sorte que les probabilités de tous les résultats possibles soient égales à un. Cependant, dans la pratique, le facteur d'échelle optimal réel est susceptible d'être quelque peu différent - donc d'optimiser avec XVAL (mais toujours de normaliser à nouveau).
Dikran Marsupial
1

Concernant (1). Vous devez conserver des observations positives et négatives si vous voulez des résultats significatifs.
(2) Il n'y a pas de méthode de sous-échantillonnage plus sage que la distribution uniforme si vous n'avez pas a priori de données.

Ugo
la source
Merci Ugo - d'accord, il doit certainement y avoir à la fois des correspondances et des non-correspondances dans les données d'entraînement. La question est de savoir combien de non-correspondances (N-1) (N-1) sont nécessaires. Pour la partie (2), je voudrais certainement échantillonner avec un poids égal sur toutes les observations.
John Horton
Eh bien, si vous n'avez pas d'apriori sur vos données, il n'y a aucun moyen raisonnable d'échantillonner les données. Vous devez donc faire un échantillonnage uniforme, et dans ce cas, plus vous en prenez, mieux c'est. Vous pouvez cependant estimer l'erreur introduite par l'échantillonnage, mais il nous manque ici des informations pour vous aider sur ce point.
Ugo
Il me semble que l'erreur dépendra du type de classificateur utilisé. Quoi qu'il en soit, vous pouvez toujours essayer de prédire à un taux d'échantillonnage différent et fixer un seuil où vous pensez que l'erreur introduite est satisfaisante.
Ugo