A maioria das outras respostas se concentra no exemplo de classes desequilibradas. Sim, isso é importante. No entanto, argumento que a precisão é problemática, mesmo com classes equilibradas.
Frank Harrell escreveu sobre isso em seu blog: Classificação vs. Previsão e Danos Causados pela Precisão da Classificação e Outras Regras Descontínuas de Pontuação de Precisão Imprópria .
Essencialmente, o argumento dele é que o componente estatístico do seu exercício termina quando você gera uma probabilidade para cada classe da sua nova amostra. Mapeamento dessas probabilidades previstas a uma classificação 0-1, pela escolha de um limiar além do qual você classificar uma nova observação como 1 vs 0 não faz parte das estatísticas mais . Faz parte do componente de decisão . E aqui, você precisa da saída probabilística do seu modelo - mas também de considerações como:(p^,1−p^)
- Quais são as consequências de decidir tratar uma nova observação como classe 1 vs. 0? Então, envio um email de marketing barato para todos os 1s? Ou aplico um tratamento invasivo contra o câncer com grandes efeitos colaterais?
- Quais são as consequências de tratar um 0 "verdadeiro" como 1 e vice-versa? Vou marcar um cliente? Submeter alguém a tratamento médico desnecessário?
- Minhas "aulas" são realmente discretas? Ou existe realmente um continuum (por exemplo, pressão arterial), em que os limiares clínicos são, na realidade, apenas atalhos cognitivos? Em caso afirmativo, a que ponto estou além do limite que estou "classificando" agora?
- Ou uma probabilidade baixa mas positiva de ser da classe 1 realmente significa "obter mais dados", "executar outro teste"?
Dependendo das consequências da sua decisão, você usará um limite diferente para tomar a decisão. Se a ação for cirurgia invasiva, você precisará de uma probabilidade muito maior de classificar o paciente como sofrendo de algo do que se a ação for recomendar duas aspirinas. Ou você pode até ter três decisões diferentes, embora haja apenas duas classes (doente versus saudável): "vá para casa e não se preocupe" vs. "faça outro teste porque o que temos é inconclusivo" versus "opere imediatamente" .
A maneira correta de avaliar as probabilidades previstas não é compará-las com um limite, mapeá-las para base no limite e depois avaliar a transformação classificação. Em vez disso, deve-se usar regras de pontuação adequadas . Essas são funções de perda que mapeiam as probabilidades previstas e os resultados observados correspondentes aos valores de perda, que são minimizados na expectativa pelas probabilidades reais . A idéia é que tomemos a média sobre a regra de pontuação avaliada em vários (melhores: muitos) resultados observados e as correspondentes probabilidades previstas de associação de classe, como uma estimativa da expectativa da regra de pontuação.(p^,1−p^)( 0 , 1 ) ( 0 , 1 ) ( p , 1 - p )(0,1)(0,1)(p,1−p)
Observe que "adequado" aqui tem um significado definido com precisão - existem regras de pontuação inadequadas , bem como regras de pontuação adequadas e, finalmente, regras de pontuação estritamente adequadas . As regras de pontuação são funções de perda de densidades e resultados preditivos. Regras de pontuação adequadas são regras de pontuação que são minimizadas em expectativa se a densidade preditiva for a densidade real. Regras de pontuação estritamente apropriadas são regras de pontuação que são minimizadas apenas na expectativa se a densidade preditiva for a densidade real.
Como observa Frank Harrell , a precisão é uma regra de pontuação inadequada. (Mais precisamente, a precisão nem sequer é uma regra de pontuação : veja minha resposta para A precisão é uma regra de pontuação imprópria em uma configuração de classificação binária? ) Isso pode ser visto, por exemplo, se não temos preditores e apenas um toque uma moeda injusta com probabilidades . A precisão é maximizada se classificarmos tudo como primeira classe e ignorarmos completamente a probabilidade de 40% de qualquer resultado na segunda classe. (Aqui vemos que a precisão é problemática mesmo para classes equilibradas.) Regras de pontuação apropriadas preferem uma previsão à(0.6,0.4)( 0,6 , 0,4 ) ( 1 , 0 )(0.6,0.4)(1,0) um em expectativa. Em particular, a precisão é descontínua no limite: movê-lo um pouquinho pode fazer uma (ou várias) previsões mudar de classe e alterar toda a precisão em um valor discreto. Isso faz pouco sentido.
Mais informações podem ser encontradas nos dois posts de Frank vinculados acima, bem como no Capítulo 10 das Estratégias de modelagem de regressão de Frank Harrell .
(Isso é vergonhosamente extraído de uma resposta anterior .)
EDITAR. Minha resposta ao Exemplo, ao usar a precisão como uma medida de resultado, levará a uma conclusão errada, dando um exemplo esperançosamente ilustrativo, em que maximizar a precisão pode levar a decisões erradas, mesmo para classes equilibradas .
Quando usamos a precisão, atribuímos custo igual a falsos positivos e falsos negativos. Quando esse conjunto de dados é desequilibrado - digamos, possui 99% de instâncias em uma classe e apenas 1% na outra - existe uma ótima maneira de reduzir o custo. Preveja que cada instância pertence à classe majoritária, obtenha precisão de 99% e volte para casa mais cedo.
O problema começa quando os custos reais que atribuímos a cada erro não são iguais. Se lidarmos com uma doença rara, mas fatal, o custo de não diagnosticar a doença de uma pessoa doente é muito maior do que o custo de enviar uma pessoa saudável para mais testes.
Em geral, não existe uma melhor medida geral. A melhor medida é derivada de suas necessidades. Em certo sentido, não é uma questão de aprendizado de máquina, mas uma questão de negócios. É comum que duas pessoas usem o mesmo conjunto de dados, mas escolham métricas diferentes devido a objetivos diferentes.
A precisão é uma ótima métrica. Na verdade, a maioria das métricas é ótima e eu gosto de avaliar muitas métricas. No entanto, em algum momento, você precisará decidir entre usar o modelo A ou B. Lá, você deve usar uma única métrica que melhor se adapte às suas necessidades.
Para crédito extra, escolha essa métrica antes da análise, para que você não se distraia ao tomar a decisão.
fonte
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.
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 :A B C 0.9
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
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.866 A classify
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) A 1.00 A 0.33 para 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.00 0.00 >0.5 A A B A
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:P N Tn n Fn n
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:
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) n n ∑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:n n ∑i(Fn,i) n ∑i(Fi,n) ∑i(Ti)−T(n)+∑i(∑k(Fn,i))−∑i(Fn,i)−∑i(Fi,n)
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) n Tn
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⊥ n n
Bem, temos todos os quais estão corretos, exceto . Assim, definimos∑i(∑k(Fi,k))−∑i(Fi,n)+∑i(Ti)−Tn ∑i(Fn,i)
fonte
Classes desequilibradas no seu conjunto de dados
Para ser breve: imagine, 99% de uma classe (digamos maçãs) e 1% de outra classe estão no seu conjunto de dados (digamos bananas). Meu algoritmo super duper obtém uma precisão de 99% surpreendente para esse conjunto de dados, confira:
return "it's an apple"
Ele estará certo 99% das vezes e, portanto, obtém uma precisão de 99%. Posso vender meu algoritmo?
Solução: não use uma medida absoluta (precisão), mas uma medida relativa a cada classe (há muito por aí, como ROC AUC)
fonte
A resposta da DaL é exatamente isso. Vou ilustrá-lo com um exemplo muito simples sobre ... vender ovos.
Você é dono de uma loja de ovos e cada ovo que você vende gera uma receita líquida de dólares. Cada cliente que entra na loja pode comprar um ovo ou sair sem comprar nenhum. Para alguns clientes, você pode optar por fazer um desconto e obterá apenas dólar de receita, mas o cliente sempre comprará.12 1
Você conecta uma webcam que analisa o comportamento do cliente com recursos como "cheira os ovos", "segura um livro com receitas de omelete" ... e os classifica em "quer comprar a dólares" (positivo) e "quer comprar apenas a dólar "(negativo) antes de ele sair.12 1
Se o seu classificador não se enganar, você obtém a receita máxima que pode esperar. Se não for perfeito, então:
Então, a precisão do seu classificador é exatamente o quão perto você está da receita máxima. É a medida perfeita.
Mas agora se o desconto é de dólar. Os custos são:a
Então você precisa de uma precisão ponderada com esses números como uma medida de eficiência do classificador. Se por exemplo, a medida é totalmente diferente. Essa situação provavelmente está relacionada a dados desequilibrados: poucos clientes estão prontos para pagar , enquanto a maioria pagaria . Você não se importa em obter muitos falsos positivos para obter mais alguns positivos verdadeiros. Você pode ajustar o limite do classificador de acordo com isso.2 0,001a=0.001 2 0.001
Se o classificador for sobre a localização de documentos relevantes em um banco de dados, por exemplo, você poderá comparar "quanto" a perda de tempo lendo um documento irrelevante é comparada à localização de um documento relevante.
fonte
A precisão da classificação é o número de previsões corretas dividido pelo número total de previsões.
A precisão pode ser enganosa. Por exemplo, em um problema em que há um grande desequilíbrio de classe, um modelo pode prever o valor da classe majoritária para todas as previsões e obter uma alta precisão de classificação. Portanto, são necessárias medidas de desempenho adicionais, como a pontuação F1 e a pontuação Brier.
fonte
Você pode ver a precisão como o da classificação: uma métrica inicialmente atraente com a qual comparar modelos, que fica aquém de um exame detalhado.R2
Nos dois casos, o excesso de ajuste pode ser um grande problema. Assim como no caso de um alto, pode significar que você está modelando o ruído em vez do sinal, uma alta precisão pode ser uma bandeira vermelha aplicada pelo seu modelo com muita rigidez ao conjunto de dados de teste e não tem aplicabilidade geral. Isso é especialmente problemático quando você tem categorias de classificação altamente desequilibradas. O modelo mais preciso pode ser trivial, classificando todos os dados como uma categoria (com precisão igual à proporção da categoria mais frequente), mas essa precisão cairá de maneira espetacular se você precisar classificar um conjunto de dados com uma distribuição verdadeira diferente de categorias .R2
Como outros observaram, outro problema de precisão é uma indiferença implícita ao preço do fracasso - ou seja, uma suposição de que todas as classificações incorretas são iguais. Na prática, eles não são, e os custos para obter a classificação errada dependem muito do assunto e você pode preferir minimizar um tipo específico de erro do que maximizar a precisão.
fonte