Verificando se a melhoria da precisão é significativa

14

Suponha que eu tenha um algoritmo que classifique as coisas em duas categorias. Eu posso medir a precisão do algoritmo em, digamos, 1000 itens de teste - suponha que 80% deles sejam classificados corretamente.

Vamos supor que eu modifique o algoritmo de alguma forma para que 81% das coisas sejam classificadas corretamente.

As estatísticas podem me dizer alguma coisa sobre se minha melhoria no algoritmo é estatisticamente significativa? O conceito de significância estatística é relevante nessa situação? Por favor, aponte-me na direção de alguns recursos que possam ser relevantes.

Muito Obrigado.

Ben
fonte

Respostas:

3

Em suma, sim. A significância estatística é relevante aqui. Você está olhando para o erro de classificação (ou, como você o indica aqui precisão = 1 - erro de classificação). Se você comparar os classificadores em 1000 amostras diferentes, poderá simplesmente usar o teste binomial; se forem as mesmas 1000 amostras, precisará usar o teste de McNemar. Observe que simplesmente testar o erro de classificação dessa maneira é subótimo, porque você assume que o erro de classificação é independente da classe verdadeira ou que a proporção das classes verdadeiras é a mesma em seus aplicativos em potencial.

Isso significa que você deve examinar medidas como taxa positiva verdadeira, taxa positiva falsa ou AUC. Que medida usar e como testá-lo depende da saída do seu classificador. Pode ser apenas uma classe ou um número contínuo, dando a probabilidade de pertencer a uma determinada classe.

Erik
fonte
Isso é ótimo, obrigado. Na verdade, estou analisando a análise de sentimentos de documentos de texto - classificando-os em "positivo" ou "negativo" - há muito trabalho publicado em que as pessoas alteram a seleção de recursos de alguma maneira sutil, com uma melhoria de precisão de 1% - e escrevem um artigo sobre isso. Gostaria de saber se, em muitos desses casos, os autores falharam em fornecer evidências de uma melhoria estatisticamente significativa na precisão da classificação.
21412 Ben
O teste de McNemar informa se os modelos são significativamente diferentes, o que nem sempre implica que a diferença de precisão é significativa (modelos diferentes podem ter a mesma precisão). Para verificar diretamente a significância do aumento da precisão, faça muitas estimativas de precisão para mapear as distribuições de precisão e, assim, estimar se são diferentes. Isso significaria treinar seus modelos várias vezes.
Drevicko 12/05/19
3

Como Erik disse, sim , você pode verificar isso quanto à significância estatística. No entanto, pense por um momento exatamente o que você deseja verificar. Penso que uma pergunta mais interessante seria perguntar qual a probabilidade de o algoritmo supostamente "aprimorado" ser melhor (ou significativamente melhor) que o original, dados os dados de uma diferença observada de 1%. Fazer perguntas em termos de "significância estatística" tende a levar ao tipo oposto de pergunta: Como os dois algoritmos são iguais, há menos de 5% de chance de observar uma melhora de pelo menos isso?

Para mim, a última pergunta é inversa, mas de alguma forma se tornou o padrão. Você pode conferir a Wikipedia sobre a controvérsia no teste de hipóteses estatísticas . Posteriormente, você poderá se interessar pela inferência bayesiana . Se você realmente deseja entrar na análise de dados bayesiana, pode verificar a "Análise de dados bayesiana" de Gelman et al. Ou verificar esta pergunta .

Michael McGowan
fonte
2

Aplicando a resposta de Erik à de Michael :

Você pode fazer o mesmo tipo de pensamento ao qual Erik se refere ao escolher a medida de desempenho.

Acho útil consultar diferentes medidas desse tipo pelas perguntas que elas respondem (aqui na linguagem de diagnóstico médico com a qual eu estou mais familiarizado - mas talvez você possa simplesmente substituir paciente por texto e doença por spam ;-)):

  • Sensibilidade: dado que o paciente realmente tem a doença, qual a probabilidade do classificador perceber isso?

  • Especificidade: dado que o paciente realmente não tem a doença, qual a probabilidade do classificador perceber isso?

  • Valor preditivo positivo: dado que o classificador afirma que o paciente está doente, qual a probabilidade do paciente realmente ter a doença?

  • Valor preditivo negativo: dado que o classificador alega que o paciente não está doente, qual a probabilidade do paciente realmente não ter a doença?

Como você vê, os valores preditivos são o que realmente interessa a médicos e pacientes. No entanto, quase todo mundo caracteriza seu classificador por sensibilidade e especificidade. A razão é que os valores preditivos precisam levar em consideração a prevalência da doença, e isso pode variar enormemente (ordens de magnitude!) Para diferentes tipos de pacientes.

Mais sobre o tópico para sua pergunta:

Aposto que você está certo em se preocupar.

Tomando os dois cenários de Erik em um exemplo:

Aqui estão as amostras de teste independentes:

> 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 

(observe que esse teste foi bilateral, assumindo que os dois classificadores tivessem sido publicados mesmo que os resultados tivessem sido inversos ...)

Aqui está a melhor situação possível: teste emparelhado, e o novo classificador é adequado para todas as amostras, o antigo também e mais 10:

> ## 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

(o valor p permanece abaixo do 0,05 mágico, desde que não mais que 10 amostras das 1000 tenham sido previstas de forma diferente pelos dois classificadores).

Mesmo que os valores-p sejam a resposta certa para a pergunta errada, há indicação de que é um local apertado.

No entanto, levando em consideração a prática científica usual, ou seja, um número desconhecido (não publicado) de novos recursos foi testado e apenas o que funcionou um pouco melhor foi publicado, o local fica ainda mais restrito. E então, o classificador de 80% pode ser o sucessor de 79% do classificador ...

Se você gosta de ler alemão, existem alguns livros muito bons de Beck-Bornhold e Dubben. Se bem me lembro, Mit an Wahrscheinlichkeit grenzender Sicherheit tem uma discussão muito boa desses problemas. (Não sei se existe uma edição em inglês, uma tradução literal do título é "Com uma certeza beirando a probabilidade")

cbeleites suporta Monica
fonte
1

Eu desencorajaria altamente o uso de qualquer regra descontínua de pontuação inadequada (uma pontuação de precisão como sensibilidade, especificidade, proporção classificada correta que, quando otimizada resulta em um modelo falso) e, em vez disso, usaria testes de razão de verossimilhança ou testes F parciais para agregar valor ao novo variáveis.

Uma das várias maneiras de ver corretamente os problemas com a proporção classificada é que, se a proporção geral em uma categoria for 0,9, você estará correto em 0,9 do tempo ignorando os dados e classificando cada observação como estando nessa categoria.

Frank Harrell
fonte
2
Sim, às vezes a precisão é uma péssima métrica, e às vezes é um método fantástico; depende. Isso parece ser completamente tangencial para o que a questão se refere. A questão é determinar se um novo algoritmo é melhor de acordo com uma métrica conhecida, e não escolher uma métrica em primeiro lugar.
22712 Michael McGowan
Penso que precisamos descrever cuidadosamente metas e funções de utilidade e, se não queremos fornecer funções de utilidade, precisamos retroceder para a função de utilidade que está sendo efetivamente assumida quando a classificação é executada.
31712 Frank McKellen em:
Alguma razão para tantos votos anônimos?
10242 chl
2
@chl Pensei ter explicado que diminuí a votação por não responder realmente à pergunta que foi feita.
Michael McGowan
@MichaelMcGowan Fair suficiente.
chl