Le problème de la précision
La précision standard est définie comme le rapport entre les classifications correctes et le nombre de classifications effectuées.
accuracy:=correct classificationsnumber of classifications
Il s’agit donc d’une mesure globale pour toutes les classes et, comme nous le verrons bientôt, ce n’est pas une bonne mesure de distinguer un oracle d’un test réellement utile. Un oracle est une fonction de classification qui renvoie une estimation aléatoire pour chaque échantillon. De même, nous voulons pouvoir évaluer les performances de classification de notre fonction de classification. La précision \ textit {peut} être une mesure utile si nous avons le même nombre d’échantillons par classe, mais si nous avons un ensemble déséquilibré d’échantillons, la précision n’est pas utile du tout. Plus encore, un test peut avoir une grande précision mais est moins performant qu’un test avec une précision moindre.
ABC0.9
classify(sample):={Aif ⊤
classify
classify(sample):=guess⎧⎩⎨ABCwith p =0.96with p =0.02with p =0.02
0.96⋅0.9+0.02⋅0.05⋅2=0.866Aclassify
Précision par classe
accuracy:=correct/(correct+incorrect)A1.00A0.331.000.00>0.5AABA
Sensibilité et Spécificité
Dans les tests médicaux, la sensibilité est définie comme le rapport entre le nombre de personnes correctement identifiées comme ayant la maladie et le nombre de personnes ayant réellement la maladie. La spécificité est définie comme le rapport entre les personnes correctement identifiées comme étant en bonne santé et le nombre de personnes réellement en bonne santé. Le nombre de personnes atteintes de la maladie est égal au nombre de résultats de test positifs vrais plus le nombre de résultats de tests faussement négatifs. La quantité de personnes réellement en bonne santé est la quantité de résultats de tests véritablement négatifs plus la quantité de résultats de tests faussement positifs.
Classification binaire
PNTnnFnn
sensitivity:=TPTP+FNspecificity:=TNTN+FP
TPFNTNFPαβαTααTα+FβαTβαTβ+FααββTββTβ+FαβTαβTα+Fβ
sensitivityα:=TαTα+Fβspecificityα:=TβTβ+Fαsensitivityβ:=TβTβ+Fαspecificityβ:=TαTα+Fβ
sensitivityα=specificityβspecificityα=sensitivityβ. Cela signifie que si nous n'avons que deux classes, nous n'avons pas besoin de sensibilité et de spécificité par classe.
Classification N-Ary
La sensibilité et la spécificité par classe ne sont pas utiles si nous n’avons que deux classes, mais nous pouvons l’étendre à plusieurs classes. La sensibilité et la spécificité sont définies comme suit:
sensitivity:=true positivestrue positives+false negativesspecificity:=true negativestrue negatives+false-positives
Tn∑i(Fn,i)∑i(Fi,n)n∑i(Ti)−T(n)nn∑i(∑k(Fi,k))nn∑i(Fn,i)n∑i(Fi,n)∑i(Ti)−T(n)+∑i(∑k(Fn,i))−∑i(Fn,i)−∑i(Fi,n). En résumé, nous avons:
true positives:=Tntrue negatives:=∑i(Ti)−T(n)+∑i(∑k(Fn,i))−∑i(Fn,i)−∑i(Fi,n)false positives:=∑i(Fi,n)false negatives:=∑i(Fn,i)
sensitivity(n):=TnTn+∑i(Fn,i)specificity(n):=∑i(Ti)−Tn+∑i(∑k(Fi,k))−∑i(Fn,i)−∑i(Fi,n)∑i(Ti)−Tn+∑i(∑k(Fi,k))−∑i(Fn,i)
Introduire la confiance
confidence⊤Tn+∑i(Fi,n)nTn
confidence⊤(n):=TnTn+∑i(Fi,n)
confidence⊥nn
∑i(∑k(Fi,k))−∑i(Fi,n)+∑i(Ti)−Tn∑i(Fn,i)
confidence⊥(n)=∑i(∑k(Fi,k))−∑i(Fi,n)+∑i(Ti)−Tn−∑i(Fn,i)∑i(∑k(Fi,k))−∑i(Fi,n)+∑i(Ti)−Tn