Quelles sont les implications pour la formation d'un ensemble d'arbres avec des ensembles de données fortement biaisés?

14

J'ai un ensemble de données binaires très biaisé - j'ai 1000 fois plus d'exemples de la classe négative que de la classe positive. J'aimerais former un ensemble d'arbres (comme des arbres aléatoires supplémentaires ou une forêt aléatoire) sur ces données, mais il est difficile de créer des ensembles de données d'apprentissage qui contiennent suffisamment d'exemples de la classe positive.

Quelles seraient les implications d'une approche d'échantillonnage stratifié pour normaliser le nombre d'exemples positifs et négatifs? En d'autres termes, est-ce une mauvaise idée, par exemple, de gonfler artificiellement (en rééchantillonnant) le nombre d'exemples de classe positifs dans l'ensemble de formation?

gallamine
la source

Réponses:

10

Oui, c'est problématique. Si vous suréchantillonnez la minorité, vous risquez de sur-équiper. Si vous sous-échantillonnez la majorité, vous risquez de manquer des aspects de la classe majoritaire. L'échantillonnage stratifié, btw, équivaut à attribuer des coûts de classification erronée non uniformes.

Alternatives:

(1) Échantillonnage indépendant de plusieurs sous-ensembles de la classe majoritaire et création de plusieurs classificateurs en combinant chaque sous-ensemble avec toutes les données de la classe minoritaire, comme suggéré dans la réponse de @Debasis et décrit dans cet article EasyEnsemble ,

(2) SMOTE (Synthetic Minority Oversampling Technique) ou SMOTEBoost, (combinant SMOTE avec boosting) pour créer des instances synthétiques de la classe minoritaire en faisant des voisins les plus proches dans l'espace des fonctionnalités. Smote est mis en oeuvre en R dans le package de DMWR .

MattBagg
la source
11

Je recommanderais une formation sur des sous-ensembles plus équilibrés de vos données. Formation d'une forêt aléatoire sur des ensembles d'exemples positifs sélectionnés au hasard avec un nombre similaire d'échantillons négatifs. En particulier, si les caractéristiques discriminantes présentent beaucoup de variance, cela sera assez efficace et évitera un sur-ajustement. Cependant, dans la stratification, il est important de trouver un équilibre car le sur-ajustement peut devenir un problème malgré tout. Je suggérerais de voir comment le modèle fonctionne avec l'ensemble de données, puis d'augmenter progressivement le rapport des échantillons positifs aux négatifs se rapprochant d'un rapport pair, et de sélectionner celui qui maximise votre métrique de performance sur certaines données représentatives.

Cet article semble assez pertinent http://statistics.berkeley.edu/sites/default/files/tech-reports/666.pdf il parle d'un weighted Random Forestqui pénalise plus lourdement les erreurs de classification de la classe minoritaire.

indico
la source
4

Un moyen rapide, facile et souvent efficace pour aborder ce déséquilibre serait de sous-échantillonner au hasard la plus grande classe (qui dans votre cas est la classe négative), d'exécuter la classification N plusieurs fois avec des membres des deux classes (une pleine et l'autre sous-échantillonné) et rapporter les valeurs métriques moyennes, la moyenne étant calculée sur N (disons 1000) itérations.

Une approche plus méthodique consisterait à exécuter l'algorithme Mapping Convergence (MC), qui consiste à identifier un sous-ensemble d'échantillons fortement négatifs à l'aide d'un classificateur à une classe, tel que OSVM ou SVDD, puis à exécuter de manière itérative la classification binaire sur l'ensemble d'échantillons fortement négatifs et positifs. Plus de détails sur l'algorithme MC peuvent être trouvés dans cet article .

Debasis
la source
0

Comme mentionné ci-dessus, la meilleure façon est d'échantillonner à plusieurs reprises la classe majoritaire N fois (échantillonnage sans remplacement) et pour chaque fois, la taille de la classe négative doit être égale à la taille de la classe positive. Maintenant, N classificateurs différents peuvent être formés et la moyenne peut être utilisée pour l'évaluer.

Une autre façon consiste à utiliser la technique du bootstrap. Cela pourrait introduire un sur-ajustement, mais cela vaut la peine d'essayer, puis si nécessaire, vous pouvez régulariser le modèle pour éviter le sur-ajustement.

RAM
la source