Vérifier si l'amélioration de la précision est significative


14

Supposons que j'ai un algorithme qui classe les choses en deux catégories. Je peux mesurer la précision de l'algorithme sur, disons, 1000 choses de test - supposons que 80% des choses sont classées correctement.

Supposons que je modifie l'algorithme de manière à ce que 81% des choses soient classées correctement.

Les statistiques peuvent-elles me dire si mon amélioration de l'algorithme est statistiquement significative? Le concept de signification statistique est-il pertinent dans cette situation? Veuillez m'orienter vers des ressources qui pourraient être pertinentes.

Merci beaucoup.

Réponses:


3

Bref, oui. La signification statistique est pertinente ici. Vous regardez l'erreur de classification (ou, comme vous le donnez ici précision = 1- erreur de classification). Si vous comparez les classificateurs sur différents 1000 échantillons, vous pouvez simplement utiliser le test binomial, s'il s'agit des 1000 mêmes échantillons dont vous avez besoin pour utiliser le test de McNemar. Notez que le simple test de l'erreur de classification de cette manière n'est pas optimal car vous supposez que l'erreur de classification est indépendante de la vraie classe ou que la proportion des vraies classes est la même dans toutes vos applications potentielles.

Cela signifie que vous devriez jeter un oeil à des mesures telles que le taux positif vrai, le taux faux positif ou l'ASC. La mesure à utiliser et la manière de la tester dépendent de la sortie de votre classicator. Il peut s'agir simplement d'une classe ou d'un nombre continu donnant la probabilité d'appartenir à une certaine classe.


C'est génial merci. En fait, je regarde l'analyse des sentiments des documents texte - les classant en "positifs" ou "négatifs" - il y a beaucoup de travaux publiés où les gens modifient la sélection des fonctionnalités de manière subtile, avec une amélioration de la précision de 1% par exemple - et écrivent un document à ce sujet. Je me demande si, dans bon nombre de ces cas, les auteurs n'ont pas apporté la preuve d'une amélioration statistiquement significative de la précision de la classification.
Ben

Le test de McNemar vous indique si les modèles sont significativement différents, ce qui n'implique pas toujours que la différence de précision est significative (différents modèles peuvent avoir la même précision). Pour vérifier directement l'importance de l'augmentation de la précision, vous voudriez faire de nombreuses estimations de précision pour cartographier les distributions de précision et ainsi estimer si elles sont différentes. Cela signifierait entraîner vos modèles plusieurs fois.
drevicko

3

Comme l'a dit Erik, oui, vous pouvez vérifier cela pour la signification statistique. Cependant, réfléchissez un instant exactement à ce que vous voulez vérifier. Je pense qu'une question plus intéressante pourrait être de se demander dans quelle mesure il est probable que l'algorithme prétendument "amélioré" soit meilleur (ou significativement meilleur) que l'original, étant donné les données d'une différence observée de 1%. Poser des questions en termes de «signification statistique» tend à conduire au type de question opposé: étant donné que les deux algorithmes sont les mêmes, y a-t-il moins de 5% de chances d'observer une amélioration d'au moins autant?

Pour moi, cette dernière question est à l'envers, mais elle est devenue en quelque sorte la norme. Vous pouvez consulter Wikipedia sur la controverse dans les tests d'hypothèses statistiques . Vous pourriez par la suite vous intéresser à l'inférence bayésienne . Si vous voulez vraiment entrer dans l'analyse des données bayésiennes, vous pouvez consulter "Bayesian Data Analysis" de Gelman et al ou consultez cette question .


2

Application de la réponse d' Erik à celle de Michael :

Vous pouvez faire le même genre de réflexion auquel Erik fait référence lors du choix de la mesure de performance.

Je trouve utile de faire référence à différentes mesures de ce type par les questions auxquelles elles répondent (ici dans le langage de diagnostic médical que je connais le mieux - mais peut-être pouvez-vous simplement remplacer le patient par texte et la maladie par spam ;-)):

  • Sensibilité: étant donné que le patient a vraiment la maladie, quelle est la probabilité que le classificateur s'en rende compte?

  • Spécificité: étant donné que le patient n'a vraiment pas la maladie, quelle est la probabilité que le classificateur s'en rende compte?

  • Valeur prédictive positive: étant donné que le classificateur prétend que le patient est malade, quelle est la probabilité que le patient soit réellement atteint de la maladie?

  • Valeur prédictive négative: étant donné que le classificateur prétend que le patient n'est pas malade, quelle est la probabilité que le patient ne souffre pas vraiment de la maladie?

Comme vous le voyez, les valeurs prédictives sont ce qui intéresse vraiment les médecins et les patients. Cependant, presque tout le monde caractérise son classificateur par sa sensibilité et sa spécificité. La raison en est que les valeurs prédictives doivent tenir compte de la prévalence de la maladie, et cela peut varier énormément (ordres de grandeur!) Pour différents types de patients.

Plus sur le sujet de votre question:

Je parie que vous avez raison de vous inquiéter.

Prenant les deux scénarios d'Erik dans un exemple:

Voici les échantillons de test indépendants:

> binom.test (x = 810, n = 1000, p = 0.8)

    Exact binomial test

data:  810 and 1000 
number of successes = 810, number of trials = 1000, p-value = 0.4526
alternative hypothesis: true probability of success is not equal to 0.8 
95 percent confidence interval:
 0.7842863 0.8338735 
sample estimates:
probability of success 
                  0.81 

(notez que ce test était bilatéral, en supposant que les deux classificateurs auraient été publiés même si les résultats avaient été inversés ...)

Voici la meilleure situation possible: test apparié, et le nouveau classificateur convient à tous les échantillons, l'ancien a raison, plus 10 autres:

> ## mc.nemar: best possible case
> oldclassif <- c (rep ("correct", 800), rep ("wrong", 200))
> newclassif <- c (rep ("correct", 810), rep ("wrong", 190))
> table (oldclassif, newclassif)
          newclassif
oldclassif correct wrong
   correct     800     0
   wrong        10   190
> mcnemar.test (oldclassif, newclassif)

    McNemar's Chi-squared test with continuity correction

data:  oldclassif and newclassif 
McNemar's chi-squared = 8.1, df = 1, p-value = 0.004427

(La valeur de p reste inférieure à 0,05 magique tant que pas plus de 10 échantillons sur les 1000 ont été prédits différemment par les deux classificateurs).

Même si les valeurs de p sont la bonne réponse à la mauvaise question, il y a des indications que c'est un peu un endroit restreint.

Cependant, compte tenu de la pratique scientifique habituelle, c'est-à-dire qu'un nombre inconnu (non publié) de nouvelles fonctionnalités a été testé, et que seule celle qui fonctionnait légèrement mieux a été publiée, l'endroit devient encore plus restreint. Et puis, le classificateur à 80% pourrait bien être le successeur d'un classificateur à 79% ...

Si vous aimez lire l'allemand, il y a de très beaux livres de Beck-Bornhold et Dubben. Si je me souviens bien, Mit an Wahrscheinlichkeit grenzender Sicherheit a une très belle discussion sur ces problèmes. (Je ne sais pas s'il y a une édition anglaise, une traduction plutôt littérale du titre est "Avec une certitude à la limite de la probabilité")


1

Je déconseillerais fortement l'utilisation de toute règle de notation incorrecte discontinue (un score d'exactitude tel que la sensibilité, la spécificité, la proportion classée correctement que lorsque optimisé donne un modèle faux) et utiliserais plutôt des tests de rapport de vraisemblance ou des tests F partiels pour la valeur ajoutée du nouveau variables.

L'une des nombreuses façons de voir les problèmes avec une proportion correctement classée est que si la proportion globale dans une catégorie est de 0,9, vous aurez raison 0,9 fois en ignorant les données et en classant chaque observation comme étant dans cette catégorie.


2
Oui, parfois la précision est une métrique moche à utiliser, et parfois c'est une méthode formidable; ça dépend. Cela semble cependant être complètement tangentiel à la question. La question est de déterminer si un nouvel algorithme est meilleur selon une métrique connue, pas de choisir une métrique en premier lieu.
Michael McGowan

Je pense que nous devons décrire soigneusement les objectifs et les fonctions d'utilité, et si nous ne voulons pas fournir de fonctions d'utilité, nous devons résoudre en arrière la fonction d'utilité qui est effectivement supposée lorsque la classification est effectuée.
Frank Harrell

Une raison pour autant de votes anonymes?
chl

2
@chl Je pensais avoir expliqué que j'avais rétrogradé pour ne pas avoir vraiment répondu à la question posée.
Michael McGowan

@MichaelMcGowan Assez juste.
chl
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.