Comparando os modelos de aprendizagem de máquina: significado estatístico vs. prático

O modelo A ou B é mais preciso? Hmm…

Dina Jankovic Blocked Desbloquear Seguir Seguindo 4 de janeiro Esquerda ou direita?

Muito trabalho foi feito na construção e ajuste de modelos ML, mas uma questão natural que surge depois de todo esse trabalho árduo – como podemos realmente comparar os modelos que construímos? Se estamos diante de uma escolha entre os modelos A e B, qual é o vencedor e por quê? Os modelos poderiam ser combinados para otimizar o desempenho?

Uma abordagem muito superficial seria comparar a precisão geral no conjunto de testes, digamos, a precisão do modelo A é de 94%, e a precisão do modelo B é de 95%, concluindo cegamente que B venceu a corrida. De fato, há muito mais do que a precisão geral para investigar e mais fatos a serem considerados.

Neste post, gostaria de compartilhar minhas descobertas recentes sobre comparação de modelos. Eu gosto de usar linguagem simples ao explicar estatísticas, então este post é uma boa leitura para aqueles que não são tão fortes em estatística, mas gostariam de aprender um pouco mais.

1. “Entenda” os dados

Se possível, é realmente uma boa ideia criar alguns enredos que possam dizer imediatamente o que realmente está acontecendo. Parece estranho fazer qualquer plotagem nesse ponto, mas os gráficos podem fornecer algumas informações que os números simplesmente não conseguem.

Em um dos meus projetos, meu objetivo era comparar a precisão dos modelos de 2 ML no mesmo conjunto de testes ao prever o imposto do usuário em seus documentos, por isso achei que seria uma boa ideia agregar os dados pelo ID do usuário e calcular o proporção de impostos corretamente previstos para cada modelo.

O conjunto de dados que eu tinha era grande (100K + instâncias), então eu dividi a análise por região e foquei em subconjuntos de dados menores – a precisão pode diferir de subconjunto para subconjunto. Em geral, é uma boa ideia lidar com conjuntos de dados ridiculamente grandes, simplesmente porque é impossível digerir uma enorme quantidade de dados de uma só vez, quanto mais chegar a conclusões confiáveis (mais sobre a questão do tamanho da amostra mais tarde). Uma grande vantagem de um conjunto de Big Data é que você não apenas tem uma quantidade insana de informações disponíveis, mas também pode ampliar os dados e explorar o que está acontecendo em um determinado subconjunto de pixels.

subconjunto 1: modelo A vs. modelo B subconjunto 2: modelo A vs. modelo B subconjunto 2: o modelo A está claramente melhor que o B… veja todos esses pontos subconjunto 3: escores do modelo A vs. modelo B

Neste ponto, suspeitei que um dos modelos está melhorando em alguns subconjuntos, enquanto eles estão fazendo praticamente o mesmo trabalho em outros subconjuntos de dados. Este é um enorme passo em frente apenas comparando a precisão geral. Mas essa suspeita poderia ser mais investigada com testes de hipóteses . Os testes de hipóteses podem detectar diferenças melhor que o olho humano – temos uma quantidade limitada de dados no conjunto de testes, e podemos estar nos perguntando como a precisão vai mudar se compararmos os modelos em um conjunto de testes diferente. Infelizmente, nem sempre é possível criar um conjunto de testes diferente, portanto, conhecer algumas estatísticas pode ser útil para investigar a natureza das precisões do modelo.

2. Teste de Hipóteses: Vamos fazer o certo!

Parece trivial à primeira vista, e você provavelmente já viu isso antes:

  1. Configurar H0 e H1
  2. Invente uma estatística de teste e assuma a distribuição Normal do nada
  3. De alguma forma, calcule o valor p
  4. Se p <alpha = 0.05 rejeitar H0 e ta-dam você está pronto!

Na prática, o teste de hipóteses é um pouco mais complicado e sensível. Infelizmente, as pessoas usam isso sem muita cautela e interpretam mal os resultados. Vamos fazer isso juntos passo a passo!

Etapa 1. Estabelecemos H0: a hipótese nula = sem diferença estatisticamente significativa entre os dois modelos e H1: a hipótese alternativa = existe uma diferença estatisticamente significativa entre a precisão dos dois modelos – até você: modelo A! = B (bicaudal) ou modelo A <ou> modelo B (unicaudal)

Passo 2. Nós chegamos a uma estatística de teste de modo a quantificar, dentro dos dados observados, comportamentos que distinguiriam a hipótese nula da alternativa. Existem muitas opções, e até mesmo os melhores estatísticos podem não ter noção de um número X de testes estatísticos – e isso é totalmente bom! Há muitas suposições e fatos a serem considerados, portanto, depois de conhecer seus dados, você pode escolher o caminho certo. O ponto é entender como o teste de hipóteses funciona, e a estatística de teste real é apenas uma ferramenta que é fácil de calcular com um software.

Tenha em atenção que existe um conjunto de hipóteses que devem ser cumpridas antes de aplicar qualquer teste estatístico. Para cada teste, você pode procurar as suposições necessárias; No entanto, a grande maioria dos dados da vida real não vai cumprir rigorosamente todas as condições, por isso sinta-se à vontade para relaxar um pouco! Mas e se seus dados, por exemplo, desviarem seriamente da distribuição Normal?

Existem duas grandes famílias de testes estatísticos: testes paramétricos e não-paramétricos , e eu recomendo ler um pouco mais sobre eles aqui . Vou ser breve: a principal diferença entre os dois é o fato de que os testes paramétricos exigem certas suposições sobre a distribuição da população, enquanto os testes não-paramétricos são um pouco mais robustos ( sem parâmetros, por favor! ).

Na minha análise, eu inicialmente queria usar o teste t de amostras pareadas , mas meus dados claramente não estavam distribuídos normalmente, então fui para o teste de classificação com sinal de Wilcoxon (equivalente não paramétrico do teste t de amostras pareadas). Cabe a você decidir qual estatística de teste você usará em sua análise, mas sempre verifique se as suposições foram cumpridas .

Meus dados não eram normalmente distribuídos 🙁

Etapa 3. Agora, o valor p. O conceito de p-value é um pouco abstrato, e eu aposto que muitos de vocês já usaram p-values antes, mas vamos esclarecer o que um p-value realmente é: um p-value é apenas um número que mede a evidência contra H0: quanto mais forte a evidência contra H0, menor o valor de p. Se o valor p for pequeno o suficiente, você tem crédito suficiente para rejeitar H0.

Felizmente, o valor-p pode ser facilmente encontrado em R / Python, então você não precisa se torturar e fazer manualmente, e embora eu tenha usado Python, prefiro testar hipóteses em R, pois há mais opções acessível. Abaixo está um trecho de código. Vemos que no subconjunto 2, de fato, obtivemos um pequeno p-value, mas o intervalo de confiança é inútil.

 wilcox.test (data1, data2, conf.int = TRUE, alternativa = "maior", pareado = TRUE, conf.level = .95, exato = FALSE) 
 V = 1061,5, valor p = 0,008576 
hipótese alternativa: mudança de localização verdadeira é menor que 0
95 por cento de intervalo de confiança:
-Inf -0,008297017
estimativas de amostra:
(pseudo) mediana
-0,02717335

Passo 4. Muito simples: se p-valor <alpha pré-especificado (0,05, tradicionalmente), você pode rejeitar H0 em favor de H1. Caso contrário, não há provas suficientes para rejeitar H0, o que não significa que H0 não seja verdade! Na verdade, isso ainda pode ser verdade, mas simplesmente não havia provas suficientes para rejeitá-lo, com base nos dados. Se alfa é 0,05 = 5%, isso significa que existe apenas um risco de 5% de concluir que uma diferença existe quando na verdade não existe (também conhecido como erro tipo 1 ). Você pode estar se perguntando: então por que não podemos ir para alfa = 1% em vez de 5%? É porque a análise vai ser mais conservadora, então será mais difícil rejeitar o H0 (e estamos tentando rejeitá-lo).

Os alfas mais usados são 5%, 10% e 1%, mas você pode escolher qualquer alfa que quiser! Isso realmente depende de quanto risco você está disposto a assumir.

O alfa pode ser 0% (isto é, sem chance de erro tipo 1)? Não. Na realidade, há sempre uma chance de você cometer um erro, então não faz sentido escolher 0%. É sempre bom deixar algum espaço para erros.

Se você quer brincar e p-hack , você pode aumentar seu alfa e rejeitar H0, mas então você se contentar com um nível mais baixo de confiança (conforme a alfa aumenta, o nível de confiança diminui – você não pode ter tudo :)) .

3. Análise Post-hoc: Significância Estatística vs. Prática

Se você obtiver um p-valor ridiculamente pequeno, isso certamente significa que há uma diferença estatisticamente significativa entre a precisão dos dois modelos. Anteriormente, eu realmente tenho um pequeno valor-p, então, matematicamente falando, os modelos diferem com certeza, mas ser "significativo" não significa ser importante . Essa diferença realmente significa alguma coisa? Essa pequena diferença é relevante para o problema de negócios?

Significância estatística refere-se à improbabilidade de que as diferenças médias observadas na amostra tenham ocorrido devido a erro amostral. Dada uma amostra grande o suficiente, apesar das diferenças populacionais aparentemente insignificantes, pode-se ainda encontrar significância estatística. Por outro lado, a importância prática analisa se a diferença é grande o suficiente para ter valor no sentido prático. Embora a significância estatística seja estritamente definida, a significância prática é mais intuitiva e subjetiva.

Neste ponto, você pode ter percebido que os valores p não são super poderosos, como você pode pensar. Há mais para investigar. Seria ótimo considerar o tamanho do efeito também. O tamanho do efeito mede a magnitude da diferença – se houver uma diferença estatisticamente significativa, podemos estar interessados em sua magnitude . O tamanho do efeito enfatiza o tamanho da diferença, em vez de confundi-lo com o tamanho da amostra.

 > abs (qnorm (valor p)) / sqrt (n) 
 0,14 
 # o tamanho do efeito é pequeno 

O que é considerado um tamanho de efeito pequeno, médio e grande? Os cortes tradicionais são 0,1, 0,3, 0,5, respectivamente, mas, novamente, isso realmente depende do seu problema de negócios.

E qual é o problema com o tamanho da amostra? Bem, se a sua amostra for muito pequena, seus resultados não serão confiáveis, mas isso é trivial. E se o tamanho da sua amostra for muito grande? Isso parece incrível – mas, nesse caso, mesmo as diferenças ridiculamente pequenas poderiam ser detectadas com um teste de hipótese. Há tantos dados que até os pequenos desvios podem ser percebidos como significativos. É por isso que o tamanho do efeito se torna útil.

Há mais a fazer – podemos tentar encontrar a potência ou o teste e o tamanho ideal da amostra. Mas estamos bem por agora.