Comment mesurer les performances d'un classificateur lorsque près de 100% des étiquettes de classe appartiennent à une classe?

9

Dans mes données, j'ai une variable de classe, notée . Les valeurs de cette variable de classe sont 0 , 1 (binaire). Presque toutes les observations de C sont 0 (près de 100%, plus précisément 97%). Je souhaiterais un test de "performance" sur différents modèles de classification (ce pourrait être la précision). Ce qui me fait peur, c'est que si j'ai un modèle de classification qui classe toujours toute observation en classe 0, alors ce modèle sera précis à 97% (même s'il ne prend jamais en compte d'autres variables).C0,1C

Existe-t-il des tests de performance bien connus pour les modèles de classification des données traitant d'événements très rares?

Jane Wayne
la source

Réponses:

3

Quelques possibilités me viennent à l'esprit.

La consultation du taux de réussite global n'est généralement pas une très bonne idée car elle dépendra de la composition de l'ensemble de test si les performances des différentes classes diffèrent. Donc, à tout le moins, vous devez spécifier (et justifier) ​​la fréquence relative des classes dans vos données de test afin de dériver une valeur significative.

Deuxièmement, comme @Shorack l'a déjà dit, spécifiez quels types d'erreur sont importants. Souvent, le classificateur doit répondre à certains critères de performance pour être utile (et la précision globale est rarement la mesure adéquate). Il existe des mesures telles que la sensibilité, la spécificité, la valeur prédictive positive et négative qui prennent en compte les différentes classes et les différents types de classification erronée. Vous pouvez dire que ces mesures répondent à différentes questions sur le classificateur:

  • sensibilité: Quelle fraction des cas appartenant véritablement à la classe C est reconnue comme telle?
  • spécificité: Quelle fraction des cas n'appartenant vraiment pas à la classe C est reconnue comme telle?
  • valeur prédictive positive: étant donné que le classificateur prédit la classe C, quelle est la probabilité que cette prédiction soit correcte?
  • valeur prédictive négative: étant donné que le classificateur prédit que le cas n'est pas de la classe C, quelle est la probabilité que cette prédiction soit correcte?

Ces questions permettent souvent de formuler des spécifications dont le classificateur doit avoir besoin pour être utile.

Les valeurs prédictives sont souvent plus importantes du point de vue de l'application pratique du classifieur: elles sont conditionnées à la prédiction, qui est la situation dans laquelle vous vous trouvez lors de l'application du classifieur (un patient n'est généralement pas intéressé à savoir test est de reconnaître les cas malades, mais plutôt la probabilité que le diagnostic déclaré soit correct). Cependant, afin de les calculer correctement, vous devez connaître les fréquences relatives des différentes classes de la population pour laquelle le classificateur est utilisé (il semble que vous ayez ces informations - il n'y a donc rien qui vous empêche de regarder cela).

Vous pouvez également regarder le gain d'informations qu'une prédiction positive ou négative vous donne. Ceci est mesuré par le rapport de vraisemblance positif et négatif, LR⁺ et LR⁻. En bref, ils vous indiquent dans quelle mesure la prédiction modifie les probabilités envers la classe en question. (voir ma réponse ici pour une explication plus détaillée)

Pour votre classificateur trivial, les choses ressemblent à ceci: je vais utiliser la classe "0" comme classe en question, donc "positif" signifie la classe "0". Sur 100 cas, 100 sont prédits positifs (appartenant à la classe 0). 97 d'entre eux le font vraiment, 3 pas. La sensibilité pour la classe 0 est de 100% (tous les 97 cas appartenant véritablement à la classe 0 ont été reconnus), la spécificité est de 0 (aucun des autres cas n'a été reconnu). la valeur prédictive positive (en supposant que la fréquence relative 97: 3 est représentative) est de 97%, la valeur prédictive négative ne peut pas être calculée car aucune prédiction négative ne s'est produite.

LR+=sensitivity1specificity=1
LR=1sensitivityspecificity=00


Direction des pensées complètement différente: vous mentionnez que vous souhaitez évaluer différents classificateurs. Cela ressemble un peu à une comparaison ou à une sélection de classificateurs. La mise en garde avec les mesures dont je discute ci-dessus est qu'elles sont sujettes à une incertitude aléatoire très élevée (ce qui signifie que vous avez besoin de beaucoup de cas de test) si vous les évaluez sur des étiquettes de classe "dures". Si votre prédiction est principalement continue (métrique, par exemple la probabilité postérieure), vous pouvez utiliser des mesures connexes qui regardent le même type de question mais n'utilisez pas des fractions de cas mais des mesures continues, voir ici . Ceux-ci seront également mieux adaptés pour détecter de petites différences dans les prévisions.

(@FrankHarrell vous dira que vous avez besoin de "règles de notation appropriées", c'est donc un autre terme de recherche à garder à l'esprit.)

cbeleites mécontents de SX
la source
3

Tout d'abord: tous les coups sont-ils d'égale importance et tous les ratés d'égale importance? Si c'est le cas, il n'y a rien de mal à ce que votre modèle nul marque si bien: c'est simplement une excellente solution.

Si vous trouvez important d'avoir de bonnes performances pour prédire les 1, vous pouvez utiliser la mesure F à la place. Il s'agit essentiellement de la moyenne harmonique du rappel (quelle partie des 1 réels a été prédite comme 1) et de la précision (quelle partie des 1 prédits était en fait un 1). Pour qu'un modèle obtienne un score élevé sur cette mesure, il doit:

  1. Trouvez la plupart des 1.
  2. Prédisez pas souvent un 1 alors qu'il est en fait 0.

Et il doit faire les deux simultanément. Même si votre modèle ne fait que l'un des 2 de manière presque parfaite, il aura un score faible s'il ne fonctionne pas avec l'autre exigence. https://en.wikipedia.org/wiki/F1_score

mvherweg
la source
Il s'agit d'une règle de notation incorrecte qui utilise uniquement 1 bit d'informations provenant des prédictions. Les règles de notation incorrectes sont optimisées par de faux modèles.
Frank Harrell
2

cYY=1YR2χ2 pour y parvenir) et n'est pas assez sensible pour être utilisé pour comparer deux modèles, c'est un joli résumé d'un modèle unique.

Frank Harrell
la source
1

La courbe caractéristique de fonctionnement du récepteur (ROC) http://en.wikipedia.org/wiki/Receiver_operating_characteristic et les calculs associés (à savoir l'aire sous la courbe-AUC) sont couramment utilisés. En gros, vous imaginez que votre classificateur donne une réponse continue (par exemple entre 0 et 1) et vous tracez la sensibilité par rapport au taux de fausses alertes (1-spécificité) car le seuil de décision varie entre 0 et 1. Ceux-ci ont été spécialement conçus pour des événements rares (repérer l'ennemi Avions?).

seanv507
la source
1

Lorsque vous traitez avec des données fortement déséquilibrées, la courbe Précision-Rappel est un très bon outil, meilleur que son cousin le plus commun, la courbe ROC .

Davis et. Al. ont montré qu'un algorithme qui optimise la zone sous la courbe ROC n'est pas garanti pour optimiser la zone sous la courbe PR.

Marc Claesen
la source