O problema com precisão
A precisão padrão é definida como a proporção de classificações corretas para o número de classificações feitas.
accuracy:=correct classificationsnumber of classifications
Portanto, é uma medida geral de todas as classes e, como veremos em breve, não é uma boa medida diferenciar um oráculo de um teste útil real. Um oráculo é uma função de classificação que retorna uma estimativa aleatória para cada amostra. Da mesma forma, queremos poder avaliar o desempenho da classificação de nossa função de classificação. Precisão \ textit {pode} ser uma medida útil se tivermos a mesma quantidade de amostras por classe, mas se tivermos um conjunto desequilibrado de precisão, as amostras não serão úteis. Ainda mais, um teste pode ter uma alta precisão, mas na verdade tem um desempenho pior do que um teste com uma menor precisão.
Se tivermos uma distribuição de amostras de tal forma que 90 \% das amostras pertencem à classe , 5 \% pertencem a e outros 5 \% pertencem a , a seguinte função de classificação terá uma precisão de :ABC0.9
classify(sample):={Aif ⊤
No entanto, é óbvio, dado que sabemos como a funciona, que isso não pode diferenciar as classes. Da mesma forma, podemos construir uma função de classificaçãoclassify
classify(sample):=guess⎧⎩⎨ABCwith p =0.96with p =0.02with p =0.02
que tem uma precisão de e nem sempre irá prever
mas ainda assim, já que sabemos como a funciona, é óbvio que não pode distinguir as classes. A precisão, neste caso, apenas nos diz quão boa é a nossa função de classificação na adivinhação. Isso significa que a precisão não é uma boa medida para diferenciar um oráculo de um teste útil.0.96⋅0.9+0.02⋅0.05⋅2=0.866Aclassify
Precisão por Classe
Podemos calcular a precisão individualmente por classe, fornecendo à nossa função de classificação apenas amostras da mesma classe, lembrar e contar o número de classificações corretas e incorretas e depois calcular a . Repetimos isso para todas as aulas. Se tivermos uma função de classificação que possa reconhecer com precisão classe
mas produzirá um palpite aleatório para as outras classes, isso resultará em uma precisão de para
e uma precisão deaccuracy:=correct/(correct+incorrect)A1.00A0.33para as outras classes. Isso já nos fornece uma maneira muito melhor de julgar o desempenho de nossa função de classificação. Um oráculo sempre adivinhando a mesma classe produzirá uma precisão por classe de para essa classe, mas para a outra classe. Se o nosso teste for útil, todas as precisões por classe devem ser . Caso contrário, nosso teste não é melhor que o acaso. No entanto, a precisão por classe não leva em conta os falsos positivos. Embora nossa função de classificação tenha uma precisão de 100 \% para a classe , também haverá falsos positivos para (como um classificado incorretamente como ).1.000.00>0.5AABA
Sensibilidade e especificidade
Nos exames médicos, a sensibilidade é definida como a razão entre as pessoas corretamente identificadas como portadoras da doença e a quantidade de pessoas que realmente têm a doença. Especificidade é definida como a razão entre as pessoas corretamente identificadas como saudáveis e a quantidade de pessoas que são realmente saudáveis. A quantidade de pessoas que realmente têm a doença é a quantidade de resultados positivos verdadeiros mais a quantidade de resultados falsos negativos. A quantidade de pessoas realmente saudáveis é a quantidade de resultados negativos reais, mais a quantidade de resultados positivos falsos.
Classificação binária
Nos problemas de classificação binária, existem duas classes e . refere-se ao número de amostras que foram corretamente identificadas como pertencentes à classe e refere-se ao número de amostras que foram falsamente identificadas como pertencentes à classe . Nesse caso, sensibilidade e especificidade são definidas da seguinte maneira:PNTnnFnn
sensitivity:=TPTP+FNspecificity:=TNTN+FP
TP sendo os verdadeiros positivos sendo os falsos negativos,
sendo os verdadeiros negativos e sendo os falsos positivos . No entanto, pensar em termos de negativos e positivos é bom para exames médicos, mas, para obter uma melhor intuição, não devemos pensar em termos de negativos e positivos, mas nas classes genéricas e . Então, podemos dizer que a quantidade de amostras corretamente identificadas como pertencentes a é e a quantidade de amostras que realmente pertencem a éFNTNFPαβαTααTα+Fβ. A quantidade de amostras corretamente identificadas como não pertencentes a é e a quantidade de amostras realmente não pertencentes a é
. Isso nos dá a sensibilidade e a especificidade para mas também podemos aplicar a mesma coisa à classe . A quantidade de amostras corretamente identificadas como pertencentes a é
e a quantidade de amostras realmente pertencentes a é . A quantidade de amostras corretamente identificadas como não pertencentes a éαTβαTβ+FααββTββTβ+FαβTαe a quantidade de amostras realmente não pertencentes a é . Temos assim uma sensibilidade e especificidade por classe:βTα+Fβ
sensitivityα:=TαTα+Fβspecificityα:=TβTβ+Fαsensitivityβ:=TβTβ+Fαspecificityβ:=TαTα+Fβ
No entanto, observamos que a e a . Isso significa que, se tivermos apenas duas classes, não precisaremos de sensibilidade e especificidade por classe.sensitivityα=specificityβspecificityα=sensitivityβ
Classificação N-ária
A sensibilidade e a especificidade por classe não são úteis se tivermos apenas duas classes, mas podemos estendê-lo para várias classes. Sensibilidade e especificidade são definidas como:
sensitivity:=true positivestrue positives+false negativesspecificity:=true negativestrue negatives+false-positives
Os verdadeiros positivos são simplesmente , os falsos negativos são simplesmente e os falsos positivos são simplesmente . Encontrar os verdadeiros negativos é muito mais difícil, mas podemos dizer que, se classificarmos corretamente algo como pertencente a uma classe diferente de será considerado um verdadeiro negativo. Isso significa que temos pelo menos negativos verdadeiros. No entanto, isso não é tudo verdadeiros negativos. Todas as classificações erradas para uma classe diferente de também são negativas verdadeiras, porque não foram corretamente identificadas como pertencentes a . Tn∑i(Fn,i)∑i(Fi,n)n∑i(Ti)−T(n)nn∑i(∑k(Fi,k))representa todas as classificações erradas. A partir disso, temos que subtrair os casos em que a classe de entrada era o que significa que devemos subtrair os falsos negativos para que é mas também precisamos subtrair os falsos positivos para porque eles são falsos positivos e não verdadeiros negativos, temos que subtrair finalmente obtendo
. Como resumo, temos:nn∑i(Fn,i)n∑i(Fi,n)∑i(Ti)−T(n)+∑i(∑k(Fn,i))−∑i(Fn,i)−∑i(Fi,n)
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)
Apresentando Confiança
Definimos uma que é uma medida da confiança que podemos ter com a resposta correta de nossa função de classificação. são todos os casos em que a função de classificação respondeu com mas apenas deles estão corretos. Definimos assimconfidence⊤Tn+∑i(Fi,n)nTn
confidence⊤(n):=TnTn+∑i(Fi,n)
Mas podemos também definir uma que é uma medida de quão confiantes podemos ser que, se nossa função de classificação responder com uma classe diferente de que na verdade não era um ?confidence⊥nn
Bem, temos todos os quais estão corretos, exceto . Assim, definimos∑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