0

J'ai un problème de classification/classification de texte multi-classe. J'ai un ensemble de données de vérité au sol avec K différentes classes mutuellement exclusives. C'est un problème déséquilibré à deux égards. D'abord, certaines classes sont beaucoup plus fréquentes que d'autres. Deuxièmement, certaines classes nous intéressent plus que d'autres (celles-ci sont en général positivement corrélées avec leur fréquence relative, bien qu'il existe des classes d'intérêt assez rares).Besoin d'aide pour appliquer scikit-learn à cette tâche de catégorisation de texte déséquilibrée

Mon but est de développer un seul classificateur ou une collection d'entre eux pour pouvoir classer les classes d'intérêt k << K avec une grande précision (au moins 80%) tout en conservant un rappel raisonnable (ce qui est "raisonnable" est un peu vague) .

Les fonctions que j'utilise sont principalement des fonctions unigram/bigram typiques plus quelques fonctionnalités binaires provenant des métadonnées des documents entrants qui sont classifiés (par exemple, si elles ont été envoyées par courrier électronique ou via un formulaire Web). En raison des données déséquilibrées, je suis en train de développer des classificateurs binaires pour chacune des classes importantes, au lieu d'une seule comme une SVM multi-classe. Quels algorithmes d'apprentissage ML (binaires ou non) implémentés en scikit-learn permettent une formation à la précision (par exemple par rappel ou F1) et quelles options dois-je définir pour cela?

Quels outils d'analyse de données dans scikit-learn peuvent être utilisés pour la sélection de caractéristiques afin d'affiner les caractéristiques qui pourraient être les plus pertinentes pour la classification orientée précision d'une classe particulière?

Ce n'est pas vraiment un problème « big data »: K est sur le point 100, k est d'environ 15, le nombre total d'échantillons disponibles me de formation et de test est d'environ 100,000.

Thx

Répondre

0

Étant donné que k est faible, je voudrais juste faire manuellement. Pour chaque classe désirée, entraînez votre classificateur individuel (un par rapport au reste), regardez la courbe de rappel de précision, puis choisissez le seuil qui donne la précision désirée.