Validação cruzada ou bootstrapping para avaliar o desempenho da classificação?

24

Qual é o método de amostragem mais apropriado para avaliar o desempenho de um classificador em um conjunto de dados específico e compará-lo com outros classificadores? A validação cruzada parece ser uma prática padrão, mas li que métodos como o .632 bootstrap são uma opção melhor.

Como acompanhamento: A escolha da métrica de desempenho afeta a resposta (se eu usar AUC em vez de precisão)?

Meu objetivo final é poder dizer com alguma confiança que um método de aprendizado de máquina é superior a outro para um conjunto de dados específico.

kelvin_11
fonte
11
O Bootstrap (com substituição) pode ser usado no seu conjunto de dados de treinamento, no lugar de, por exemplo, validação cruzada (repetida) com dobra em k. Consulte também: Diferenças entre validação cruzada e autoinicialização para estimar o erro de previsão , Compreendendo a autoinicialização para validação e seleção de modelo .
chl 26/09/13

Respostas:

42

Uma diferença importante da maneira usual de validação cruzada e métodos fora do bootstrap são aplicados é que a maioria das pessoas aplica a validação cruzada apenas uma vez (ou seja, cada caso é testado exatamente uma vez), enquanto a validação fora do bootstrap é realizada com um grande número de repetições / iterações. Nessa situação, a validação cruzada está sujeita a uma variação maior devido à instabilidade do modelo. No entanto, isso pode ser evitado usando, por exemplo, validação cruzada repetida / repetida . Se isso for feito, pelo menos para os conjuntos de dados espectroscópicos com os quais estou trabalhando, o erro total de ambos os esquemas de reamostragem parece ser o mesmo na prática.k

A validação cruzada de deixar um fora é desencorajada, pois não há possibilidade de reduzir a variação do tipo instabilidade do modelo e existem alguns classificadores e problemas nos quais ele exibe um grande viés pessimista.

O bootstrap .632 faz um trabalho razoável, desde que o erro de reamostragem misturado não seja muito otimista. (Por exemplo, para os dados com os quais trabalho, matrizes muito amplas com muitas variáveis, isso não funciona muito bem, pois os modelos são propensos a sobreajuste grave). Isso significa também que eu evitaria usar a inicialização .632 para comparar modelos de complexidade variável. Com o .632+ bootstrap, não tenho experiência: se o overfitting acontecer e for detectado corretamente, será igual à estimativa original do bootstrap, por isso continuo com validação cruzada simples ou repetida / repetida para meus dados.

Literatura:

  • Kohavi, R .: Um Estudo de Validação Cruzada e Bootstrap para Processos de Inteligência Artificial para Estimativa de Precisão e Seleção de Modelo 14ª Conferência Conjunta Internacional, 20 - 25. Agosto de 1995, Montreal, Québec, Canadá, 1995, 1137 - 1145.
    (um clássico )

Dougherty e Braga-Neto têm várias publicações sobre o tema , por exemplo

Escolha da métrica:

Meu objetivo final é poder dizer com alguma confiança que um método de aprendizado de máquina é superior a outro para um conjunto de dados específico.

  • Use um teste emparelhado para avaliar isso. Para comparar proporções, dê uma olhada no teste de McNemar.

  • A resposta para isso será afetada pela escolha da métrica. Como as medidas de erro do tipo regressão não têm a etapa de "endurecimento" de cortar decisões com um limite, elas geralmente têm menos variação do que suas contrapartes de classificação. Métricas como precisão, que são basicamente proporções, precisarão de um grande número de casos de teste para estabelecer a superioridade de um classificador em relação a outro.

Fleiss: "Métodos estatísticos para taxas e proporções" fornece exemplos (e tabelas) para comparação não proporcional de proporções. Para lhe dar uma impressão do que quero dizer com "tamanhos enormes de amostras", dê uma olhada na imagem na minha resposta a essa outra pergunta . Testes pareados como o de McNemar precisam de menos casos de teste, mas o IIRC ainda está no melhor dos casos metade (?) Do tamanho da amostra necessário para o teste não emparelhado.

  • Para caracterizar o desempenho de um classificador (reforçado), você geralmente precisa de uma curva de trabalho de pelo menos dois valores, como o ROC (sensibilidade versus especificidade) ou algo semelhante.
    Raramente uso precisão total ou AUC, pois meus aplicativos geralmente têm restrições, por exemplo, que a sensibilidade é mais importante que a especificidade ou que certos limites dessas medidas devem ser atendidos. Se você optar pelas características de soma de "número único", verifique se o ponto de trabalho dos modelos que você está vendo está realmente em uma faixa sensata.

  • Para precisão e outras medidas de desempenho que resumem o desempenho de várias classes de acordo com os rótulos de referência, leve em consideração a frequência relativa das classes que você encontrará no aplicativo - o que não é necessariamente o mesmo que no seu dados de treinamento ou teste.

  • Provost, F. et al. : O Caso Contra Estimativa de Precisão para Comparação de Algoritmos de Indução em Procedimentos da Décima Quinta Conferência Internacional sobre Aprendizado de Máquina, 1998


editar: comparando vários classificadores

Estou pensando nesse problema há algum tempo, mas ainda não cheguei a uma solução (nem conheci ninguém que tivesse uma solução).

Aqui está o que eu tenho até agora:

No momento, decidi que "a otimização é a raiz de todo mal" e, em vez disso, adote uma abordagem muito diferente:
decido o máximo possível com conhecimento especializado sobre o problema em questão. Isso na verdade permite restringir bastante as coisas, para que eu possa evitar a comparação de modelos. Quando tenho que comparar modelos, tento ser muito aberto e claro, lembrando as pessoas sobre a incerteza da estimativa de desempenho e que a comparação de modelos particularmente múltiplos é AFAIK ainda é um problema não resolvido.


Edição 2: testes emparelhados

n1 12(n2-n)do teste refere-se apenas ao fato de que, como todos os modelos são testados exatamente com os mesmos casos de teste, é possível dividir os casos em casos "fáceis" e "difíceis", por um lado, para os quais todos os modelos chegam a um correto (ou errado) previsão. Eles não ajudam a distinguir entre os modelos. Por outro lado, existem casos "interessantes" que são previstos corretamente por alguns, mas não por outros modelos. Somente esses casos "interessantes" precisam ser considerados para julgar a superioridade, nem os casos "fáceis" nem os "difíceis" ajudam com isso. (É assim que eu entendo a idéia por trás do teste de McNemar).

nn

cbeleites suporta Monica
fonte
Obrigado pela resposta detalhada! Eu realmente aprecio se você pudesse elaborar o argumento que fez: " Use um teste emparelhado para avaliar isso. Para comparar proporções, dê uma olhada no teste de McNemar. " Devo reformular um pouco minha pergunta: gostaria de comparar várias máquinas métodos de aprendizagem de uma só vez, não necessariamente apenas pares. Não está imediatamente claro para mim como os testes emparelhados poderiam fazer isso.
precisa saber é o seguinte
3
(+6) Boa resposta.
chl 28/09/13
@cbeleites Eu te amo por esse comentário. Para o significado da comparação de vários modelos - e os métodos de análise de variância (ANOVA)? como Kruskal-Wallis ?
Serendipity
11
@ Serendipity: Eu realmente não sei o suficiente sobre Kruskal-Wallis para lhe dar uma resposta aqui. Mas suspeito que os métodos do tipo ANOVA não sejam os desejados aqui, pois (1) ele não usa a natureza emparelhada dos dados e (2) ganha poder em comparação com as comparações múltiplas, porque a hipótese nula é apenas "todos os modelos executar igualmente "- se isso for rejeitado, você ainda não saberá quais algoritmos têm desempenho diferente. Portanto, ele só pode ser usado para enfatizar resultados negativos (não importa qual algoritmo você escolher). Eu suspeitaria que existe uma grande zona em que a ANOVA diz que nem todos os modelos ... #
cbeleites suporta Monica
... são iguais, mas você não possui informações suficientes para permitir as múltiplas comparações necessárias para identificar melhores modelos.
cbeleites suporta Monica
6

Você precisa de modificações no bootstrap (.632, .632+) apenas porque a pesquisa original usou uma regra de pontuação inadequada e descontínua (proporção classificada corretamente). Para outras pontuações de precisão, o bootstrap de otimismo comum tende a funcionar bem. Para mais informações, consulte http://biostat.mc.vanderbilt.edu/RmS#Studies_of_Methods_Used_in_the_T

Regras de pontuação inadequadas enganam você sobre a escolha dos recursos e seus pesos. Em outras palavras, tudo o que pode dar errado vai dar errado.

Frank Harrell
fonte
4

De 'Modelagem Preditiva Aplicada., Khun. Johnson . p.78

"Nenhum método de reamostragem é uniformemente melhor que outro; a escolha deve ser feita considerando vários fatores. Se o tamanho da amostra for pequeno, recomendamos o uso de validação cruzada repetida em 10 vezes por várias razões; as propriedades de viés e variância são boas e dadas as o tamanho da amostra, os custos computacionais não são grandes.Se o objetivo é escolher entre os modelos, em vez de obter o melhor indicador de desempenho, pode-se argumentar bastante com o uso de um dos procedimentos de autoinicialização, pois estes apresentam uma variação muito baixa. Para amostras grandes, as diferenças entre os métodos de reamostragem tornam-se menos pronunciadas e a eficiência computacional aumenta o desempenho ". p. 78

Além disso, dada a escolha de dois resultados semelhantes, o modelo mais interpretável é geralmente preferido. Como exemplo (do mesmo texto), usando um CV de 10 vezes, um classificador SVM tinha uma estimativa de precisão de 75%, com resultados de nova amostra entre 66 e 82%. Os mesmos parâmetros foram utilizados em um classificador de regressão logística com precisão de 74,9% e a mesma faixa de reamostragem. O modelo de regressão logística mais simples pode ser preferido, pois é mais fácil interpretar os resultados.

tapinha
fonte
4
Observe que a variação que você pode reduzir executando um grande número de iterações / repetições de autoinicialização / validação cruzada é apenas a parte da variação resultante da instabilidade dos modelos substitutos. Você pode medir se essa é uma contribuição importante para a variação total por validação cruzada, uma vez que testa cada amostra exatamente uma vez durante cada execução, para que a variação devido ao tamanho finito da amostra não apareça na comparação das médias das execuções completas de validação cruzada. . Para a classificação "rígida", é possível calcular a variação devido ao tamanho finito da amostra da distribuição binomial.
cbeleites suporta Monica
@ cbeleites: Você pode explicar um pouco o que você quer dizer com "ele testa cada amostra exatamente uma vez durante cada execução, para que a variação devido ao tamanho finito da amostra não apareça na comparação das médias das execuções completas de validação cruzada". (as referências também são boas!) (+1 claramente)
usεr11852 diz Reinstate Monic 7/17/17
@ usεr11852: cada caso é testado exatamente uma vez por execução de validação cruzada. Imagine uma tabela com os resultados da execução do n_sample xr CV. Se tivermos previsões estáveis , todas as previsões r para o mesmo caso serão iguais. Ou seja, não há variação ao longo das linhas. Mas casos diferentes podem obter previsões diferentes (a menos que tenhamos, por exemplo, 100% de precisão): temos variações ao longo das colunas. Agora, a avaliação padrão da valiação cruzada iterada / repetida é comparar as médias da coluna. Para os modelos estáveis, estes são exatamente os mesmos, embora nós fazer têm variância ao longo das colunas, ou seja, entre os casos.
Cbeleites suporta Monica
(Se os modelos / previsões são instáveis, obtemos diferentes previsões por diferentes modelos substitutos e também vemos variações ao longo das linhas. Além disso, algumas variações adicionais ao longo das colunas, pois cada coluna no CV k-fold cobre k modelos diferentes de substitutos. ) Portanto, para medir a estabilidade do modelo / predição (in), talvez seja ainda mais direto ir diretamente para a variação ao longo das linhas, ou seja, variação das previsões de diferentes modelos substitutos para o mesmo caso.
Cbeleites suporta Monica
11
@ cbeleites: Muito obrigado pelo esclarecimento. Agora posso apreciar o que você está dizendo mais.
usεr11852 diz Reinstate Monic