Validação cruzada interna x externa e seleção de modelo

26

Meu entendimento é que, com a validação cruzada e a seleção de modelos, tentamos abordar duas coisas:

P1 . Estimar a perda esperada na população ao treinar com nossa amostra

P2 . Medir e relatar nossa incerteza em relação a essa estimativa (variação, intervalos de confiança, viés etc.)

A prática padrão parece ser a validação cruzada repetida, pois isso reduz a variação do nosso estimador.

No entanto, quando se trata de relatórios e análises, entendo que a validação interna é melhor que a validação externa porque:

É melhor relatar:

  • As estatísticas do nosso estimador, por exemplo, seu intervalo de confiança, variância, média etc. na amostra completa (neste caso, a amostra CV).

do que os relatórios:

  • A perda de nosso estimador em um subconjunto de espera da amostra original, pois:

    (i) Essa seria uma medida única ( mesmo se escolhermos nosso estimador com CV )

    (ii) Nosso estimador para essa medição única teria sido treinado em um conjunto (por exemplo, o conjunto de CV) que é menor que a nossa amostra inicial, pois precisamos abrir espaço para o conjunto de espera. Isso resulta em uma estimativa mais tendenciosa (pessimista) em P1 .

Isso está correto? Se não, por quê?

Fundo:

É fácil encontrar livros que recomendam dividir sua amostra em dois conjuntos:

  • O conjunto de CV , que é subsequente e repetidamente dividido em conjuntos de treinamento e validação .
  • O conjunto de espera (teste), usado apenas no final para relatar o desempenho do estimador

Minha pergunta é uma tentativa de entender os méritos e as vantagens dessa abordagem, considerando que nosso objetivo é realmente abordar os problemas P1 e P2 no início deste post. Parece-me que relatar o conjunto de testes de retenção é uma prática ruim, pois a análise da amostra do CV é mais informativa.

Dobra K aninhada vs dobra K repetida:

Em princípio, pode-se combinar o afastamento com a dobra K regular para obter uma dobra K aninhada . Isso nos permitiria medir a variabilidade de nosso estimador, mas parece-me que, para o mesmo número de modelos totais treinados (número total de dobras) dobras K repetidas, produziria estimadores menos tendenciosos e mais precisos que o K- aninhado dobra. Para ver isso:

  • A dobra K repetida usa uma fração maior da nossa amostra total do que a dobra K aninhada para o mesmo K (ou seja, leva a um viés menor)
  • 100 iterações dariam apenas 10 medidas do nosso estimador na dobra K aninhada (K = 10), mas 100 medidas na dobra K (mais medidas levam a uma menor variação no P2 )

O que há de errado com esse raciocínio?

Amelio Vazquez-Reina
fonte
11
Ajustei seu título para que seja mais específico ao que eu deduzo que você quer saber. Acho que é mais provável que você obtenha as informações necessárias dessa maneira. Sinta-se à vontade para alterá-lo novamente se não concordar. Observe também que esse segmento se tornou automaticamente CW devido ao alto número de edições. Se você não deseja que seja CW, sinalize-o para atenção do moderador; deveria ser possível reverter isso (eu acho).
gung - Restabelece Monica
11
Obrigado @gung. A minha única preocupação é que algumas pessoas podem confundir hold-out com CV 2 vezes , com isso, eu acho interna vs CV externo como no Steyerberg03 é mais clara
Amelio Vazquez-Reina

Respostas:

20

Deixe-me acrescentar alguns pontos para as boas respostas que já estão aqui:

Dobra K aninhada versus dobra K repetida: dobra k aninhada e repetida são coisas totalmente diferentes, usadas para fins diferentes.

  • Como você já sabe , aninhado é bom se você deseja usar o cv interno para a seleção do modelo.
  • repetido: IMHO, você deve sempre repetir a dobra k cv [veja abaixo].

Portanto, recomendo repetir qualquer validação cruzada de dobras k aninhada .

Melhor relatório "As estatísticas do nosso estimador, por exemplo, seu intervalo de confiança, variância, média, etc., na amostra completa (neste caso, a amostra CV)." :

Certo. No entanto, você precisa estar ciente do fato de que não poderá (facilmente) estimar o intervalo de confiança apenas pelos resultados da validação cruzada. A razão é que, por mais que você faça uma nova amostra, o número real de casos que você olha é finito (e geralmente bastante pequeno - caso contrário, você não se importaria com essas distinções).
Veja, por exemplo , Bengio, Y. e Grandvalet, Y .: Nenhum estimador imparcial da variância do Jornal de validação cruzada K-Fold da Machine Learning Research, 2004, 5, 1089-1105 .

n

nσ2(p^)=1 1np(1 1-p)pp^np=0,5
C. Beleites, R. Salzer e V. Sergo: Validação de Modelos de Classificação Macia usando Associações Parciais de Classe: Um Conceito Estendido de Sensibilidade & Co. aplicado à Classificação de Tecidos de Astrocitoma, Chemom. Intell. Lab. Syst., 122 (2013), 12-22.

Portanto, isso permite que você revele sua argumentação contra o impedimento :

  • A reamostragem sozinha (necessariamente) não fornece uma boa estimativa da variação,
  • OTOH, se você puder raciocinar sobre a variação finita do tamanho da amostra de teste finito da estimativa de validação cruzada, isso também é possível para reter.

Nosso estimador para essa medição única teria sido treinado em um conjunto (por exemplo, o conjunto de CV) que é menor que a nossa amostra inicial, pois precisamos abrir espaço para o conjunto de retenção. Isso resulta em uma estimativa mais tendenciosa (pessimista) em P1.

1 1k

Parece-me que relatar o conjunto de testes de retenção é uma prática ruim, pois a análise da amostra do CV é mais informativa.

Geralmente sim. No entanto, também é bom lembrar que existem tipos importantes de erros (como desvio) que não podem ser medidos / detectados pela validação de reamostragem.
Ver, por exemplo , Esbensen, KH e Geladi, P. Princípios de Validação Adequada: uso e abuso de nova amostragem para validação, Journal of Chemometrics, 2010, 24, 168-187

mas parece-me que, para o mesmo número de modelos totais treinados (número total de dobras) dobras K repetidas, produziria estimadores menos tendenciosos e mais precisos do que o K-fold aninhado. Para ver isso:

A dobra K repetida usa uma fração maior da nossa amostra total do que a dobra K aninhada para o mesmo K (ou seja, leva a um viés menor)

k-1 1kn
k

100 iterações dariam apenas 10 medidas do nosso estimador na dobra K aninhada (K = 10), mas 100 medidas na dobra K (mais medidas levam a uma menor variação no P2)

Se isso faz diferença depende da instabilidade dos modelos (substitutos), veja acima. Para modelos estáveis, é irrelevante. Pode ser que você faça 1000 ou 100 repetições / iterações externas.


E este artigo pertence definitivamente à lista de leitura sobre este tópico: Cawley, GC e Talbot, NLC Sobre adaptação excessiva na seleção de modelos e viés de seleção subsequente na avaliação de desempenho, Journal of Machine Learning Research, 2010, 11, 2079-2107

cbeleites suporta Monica
fonte
6

Uma referência importante que explica isso é:

@ARTICLE{pic90,
  author = {Picard, R. R. and Berk, K. N.},
  year = 1990,
  title = {Data splitting},
  journal = The American Statistician,
  volume = 44,
  pages = {140-147}
}

Veja também:

@Article{mic05pre,
  author =       {Michiels, Stefan and Koscielny, Serge and Hill, Catherine},
  title =        {Prediction of cancer outcome with microarrays: a
multiple random validation strategy},
  journal =      {Lancet},
  year =         2005,
  volume =       365,
  pages =        {488-492},
  annote =       {comment on
p. 454; validation;microarray;bioinformatics;machine learning;nearest
centroid;severe problems with data splitting;high variability of list
of genes;problems with published studies;nice results for effect of
training sample size on misclassification error;nice use of confidence
intervals on accuracy estimates;unstable molecular signatures;high
instability due to dependence on selection of training sample}
}

Em meu próprio trabalho, descobri que a divisão de dados requer treinamento e tamanhos de amostra de teste próximos de 10.000 para funcionar satisfatoriamente.

Frank Harrell
fonte
Frank - Estes são ótimos recursos. Gostaria de saber como essas informações se relacionam com o que @Dan forneceu em sua resposta. Talvez eu esteja interpretando mal isso, mas parece que a comunidade está dividida sobre esse assunto.
Amelio Vazquez-Reina
Não tive tempo de ler o primeiro, mas, quanto ao segundo, dei uma rápida olhada e parece ecoar exatamente o que meus artigos diziam. Dê uma olhada na seção "Análise estatística" e você verá que eles descrevem o mesmo processo de seleção de recursos que Dikran descreve no post que eu vinculei acima. Suponho que as pessoas que eles estudaram não fizeram dessa maneira, e é por isso que descobrem que "Devido à validação inadequada, nossos estudos escolhidos publicaram resultados super otimistas em comparação com os de nossas próprias análises". Eu não acho que exista algum desacordo.
Dan L
4

Realmente depende do processo de construção do modelo, mas achei este artigo útil

http://www.biomedcentral.com/content/pdf/1471-2105-7-91.pdf

O ponto crucial do que é discutido aqui é o viés liberal significativo (estimar o desempenho do modelo para ser melhor do que realmente será) que ocorrerá se você estiver selecionando seu modelo com base na mesma coisa que está usando para estimar seu desempenho. Portanto, se você estiver selecionando seu modelo em um conjunto de modelos possíveis, observando seu erro de validação cruzada, não deverá usar o erro de validação cruzada (ou qualquer outro método de estimativa interna) para estimar o desempenho do modelo.

Outro recurso útil é

/stats//a/27751/26589

Este post apresenta um exemplo claro de como a seleção de seus recursos quando todos os dados são "vistos" levará a um viés liberal no desempenho do modelo (dizendo que seu modelo terá um desempenho melhor do que realmente será).

Se você desejar que eu descreva um exemplo mais específico para o que você faz, talvez você possa fornecer uma descrição geral dos tipos de modelos que está construindo (quantos dados você tem, quantos recursos você seleciona, o modelo real etc.).

Dan L
fonte
Obrigado Dan. Tudo isso é interessante. Para simplificar, podemos assumir que estamos tentando estimar os parâmetros do kernel de um SVM (por exemplo, um kernel RBF) para classificação binária (<~ 10 parâmetros) e que estamos trabalhando com 100 amostras (por exemplo, 20 positivas) de uma grande população.
Amelio Vazquez-Reina
Algumas perguntas rápidas. 1) Quando você constrói seus SVMs, permite-se escolher um subconjunto dos 10 parâmetros ou sempre usa todos os que lhe são entregues? 2) Você já considerou diferentes núcleos ou modelos (logística, floresta aleatória etc.)? 3) Qual software / pacote você está usando? As implementações internas de validação cruzada variam e eu gostaria de saber qual você usaria.
Dan L
Obrigado @Dan - faço uma pesquisa na grade entre modelos e parâmetros (ou seja, os kernels e parâmetros são diferentes na pesquisa na grade). Para cada experimento na pesquisa em grade, faço CV (validação cruzada repetida em dobras K). Estou usando o scikit-learn.
Amelio Vazquez-Reina
11
Obrigado @Dan. Acho que minha única pergunta que resta sobre a validação cruzada aninhada é como escolher o modelo (já que recebo um modelo diferente em cada dobra do loop externo). Não me parece razoável escolher o modelo que tem a maior pontuação nesse loop externo, pois o modelo vencedor em cada dobra é medido em uma parte diferente do conjunto de dados.
Amelio Vazquez-Reina
11
Digamos que você tenha 3 dobras externas. Isso significa que você executa um processo inteiro de construção do modelo três vezes, oferecendo três modelos diferentes. Você não usa nenhum desses modelos no final - para obter seu modelo final, você executa todo o processo de criação do modelo em todos os seus dados (exceto possivelmente um conjunto de avaliação independente). Parece que isso levaria ao ajuste excessivo, mas se a estratégia de construção do modelo se ajustar demais, ela também deverá se adequar na validação cruzada externa, levando a uma estimativa de erro adequadamente mais alta.
22613 Dan L
2

Acho que seu entendimento está correto, o estimador de perdas obtido usando um único conjunto de testes de espera geralmente apresenta alta variação. Ao executar algo como a validação cruzada de dobras em K, você obtém uma idéia mais precisa da perda, bem como um senso de distribuição da perda.

Geralmente, há uma troca, quanto mais CV dobra, melhor sua estimativa, mas é necessário mais tempo computacional.

Max S.
fonte
Obrigado. Eu adicionei uma informação de fundo ao OP para esclarecer minha pergunta.
Amelio Vazquez-Reina