Como a validação cruzada é diferente da espionagem de dados?

13

Acabei de terminar "Uma Introdução à Aprendizagem Estatística" . Perguntei-me se o uso da validação cruzada para encontrar os melhores parâmetros de ajuste para várias técnicas de aprendizado de máquina é diferente da espionagem de dados.

Estamos verificando repetidamente qual valor do parâmetro de ajuste resulta em um melhor resultado preditivo no conjunto de testes. E se o parâmetro de ajuste a que chegamos for adequado para esse teste específico definido por acaso e não tiver um bom desempenho em alguns testes futuros?

Por favor, desculpe meu entendimento novato de aprendizado de máquina e estou ansioso para ser educado.

EDIT: Consulte a resposta do @AdamO sobre a definição de "espionagem de dados". Usei o termo de maneira muito imprecisa na minha pergunta.

Heisenberg
fonte
Estou muito feliz em descobrir isso ... ter um CT amanhã com alguns pesquisadores que publicaram algo ... infelizmente sofrendo com esse problema. Ótima pergunta!
Pallevillesen 17/05/19

Respostas:

12

Perguntei-me se o uso da validação cruzada para encontrar os melhores parâmetros de ajuste para várias técnicas de aprendizado de máquina é diferente da espionagem de dados.

Sua preocupação está no ponto certo e há muita literatura sobre esse tópico, por exemplo,

O problema é que o ajuste de hiperparâmetro com validação cruzada é um processo de otimização orientado a dados e ainda tenderá a se ajustar demais ao seu conjunto de dados (menos do que o ajuste por erro de re-substituição, mas ainda). Tentar usar os resultados da validação cruzada de ajuste como medida de desempenho "independente" é como comer o bolo (= ajuste) e mantê-lo (= medir o desempenho do modelo final).

Isso não significa que você não deve usar a validação cruzada para o ajuste do hiperparâmetro. Significa apenas que você pode usá-lo apenas para um propósito. Otimize ou avalie o desempenho do modelo para fins de validação.

A solução é que você precisa fazer uma validação independente para medir a qualidade do modelo obtido com os hiperparâmetros ajustados. Isso é chamado de validação aninhada ou dupla. Você encontrará várias perguntas e respostas aqui sobre esses tópicos

Conceitualmente, eu gosto de dizer que o treinamento inclui todos os tipos de etapas sofisticadas para ajustar não apenas os parâmetros "usuais" do modelo, mas também para ajustar (ajustar automaticamente) os hiperparâmetros. Portanto, a otimização de λ orientada a dados é claramente parte do treinamento do modelo.

Como regra geral, você também pode dizer que o treinamento do modelo é tudo o que precisa ser feito antes que você tenha uma função de caixa preta final pronta para usar, capaz de produzir previsões para novos casos.


PS: Acho a terminologia teste versus validação muito confusa, porque no meu campo "validação" significa provar que o modelo final é adequado ao objetivo e, portanto, é o que outras pessoas chamam de teste em vez de validação. Prefiro chamar o conjunto de testes interno de "conjunto de testes de ajuste" e o "conjunto de testes de validação final" externo ou algo semelhante.


Atualizar:

Portanto, se meu modelo (ou seja, meu parâmetro de ajuste neste caso) falhar na validação externa, o que devo fazer?

Normalmente, isso não é nada que simplesmente acontece: existem situações típicas que podem causar essa falha. E todas essas situações que eu conheço são situações de super adaptação. Você precisa estar ciente de que, embora a regularização ajude a reduzir o número necessário de casos de treinamento, a otimização orientada a dados precisa de grandes quantidades de dados.

Minhas recomendações:

  • Normalmente, você (deveria) já tem expectativas aproximadas, por exemplo, qual desempenho deve ser alcançável, qual desempenho você considera suspeito de boa aparência. Ou especifique qual desempenho você precisa alcançar e um desempenho de linha de base. A partir disso, e o número de casos de treinamento disponíveis (para o esquema de divisão que você decidiu), calcule a incerteza esperada para os testes internos (ajuste). Se essa incerteza indicar que você não seria capaz de obter comparações significativas, não faça a otimização orientada a dados.

  • Você deve verificar a estabilidade das previsões obtidas com o λ escolhido e o λ ideal encontrado pelo procedimento de autoajuste. Se λ não estiver razoavelmente estável em relação a diferentes divisões dos seus dados, a otimização não funcionou.

  • Se você achar que não poderá executar a otimização orientada por dados ou que ela não funcionou, você pode escolher o λ pelo seu conhecimento especializado, por exemplo, por experiência com dados semelhantes. Ou pelo conhecimento de que se você descobrir que a otimização falhou, precisará de uma regularização mais forte: o ajuste excessivo que leva à falha funciona em modelos muito complexos.

cbeleites suporta Monica
fonte
1
Eu concordo, a terminologia train / test / validation não é muito intuitiva
M. Berk
3

k

λλ

A "espionagem de dados" ou, como eu poderia chamar, "análise exploratória de dados" não trata de uma pergunta pré-especificada. Você meio que enumera vários resultados possíveis, plausivelmente interessantes, e os avalia individualmente. Você pode executar qualquer número de análises exploratórias e, geralmente, não se preocupa com vários testes. Você pode avaliar cada análise exploratória individualmente usando a validação cruzada, mas ela não é inerente a vários testes quando você possui mais de uma análise exploratória. As hipóteses nesse cenário podem ser bastante amplas e abrangentes, "quais fatores estão associados ao câncer de próstata?" (a partir da qual o consumo de café, o uso de vasectomia etc. etc. foram medidos em uma coorte). Resultados significativos são vistos como "geradores de hipóteses" e não fornecem evidências confirmatórias.

k

AdamO
fonte
λλ
1
@ Anh: o ajuste de λ por validação cruzada não é ruim em si. Mas, ao fazer isso, você "esgotou" essa validação cruzada para ajustar λ e precisa de outra validação independente da modelagem, incluindo o processo de ajuste λ. Não fazer essa validação externa é MAU. Se esse λ específico não funcionar "novamente" (por exemplo, em outra divisão dos dados), sua otimização não funcionará. Nessa situação, você também verá uma grande diferença entre os resultados da validação externa e o "melhor" desempenho observado durante o ajuste.
Cbeleites suporta Monica
@ cbeleites Então, se meu modelo (por exemplo, meu parâmetro de ajuste neste caso) falhar na validação externa, o que devo fazer? Não posso voltar atrás e encontrar outro parâmetro de ajuste, porque essencialmente isso estaria transformando a validação externa no conjunto de testes de ajuste. Então o que fazer?
Heisenberg
λ
λk
1

Na verdade, durante o CV, você tenta encontrar os melhores parâmetros em um conjunto de validação , que é diferente do conjunto de teste. Você divide seus dados inteiros em três conjuntos: conjunto de treinamento, conjunto de validação e conjunto de testes. Quando você faz a validação cruzada corretamente, nunca olha o final do teste até o final, para que não haja bisbilhotagem. A validação cruzada no conjunto de testes é um erro metodológico sério (ainda que frequente).

Jerorx
fonte
Se o conjunto de validação e o conjunto de testes são diferentes, faz sentido para mim. No entanto, no livro que li (por Hastie et al. Não menos importante), eles argumentam que o uso do teste de retenção é caro (não estamos usando muitos dados para treinar); portanto, eles recomendam a validação cruzada com dobras k, em que não acho que exista um conjunto de testes separado.
Heisenberg
1
@ Anh: ambas as divisões podem ser feitas por reamostragem (por exemplo, validação cruzada repetida) em vez de deixar apenas um pequeno conjunto de dados.
Cbeleites suporta Monica
@ Anh: Na validação cruzada k-fold, você divide k vezes o conjunto de treinamento original em um conjunto de treinamento menor e um conjunto de validação. O conjunto de testes original não está envolvido e é usado apenas no final.
21413 Jerorx
0

Se você procurar, por exemplo, a página 225 de "Uma introdução ao aprendizado estatístico" com o exemplo Lasso, verá que eles realmente fazem validação cruzada aninhada. Ou seja, a seleção do modelo é feita em cv.glmnetum trainconjunto, que é dividido pelo cv.glmnetpacote em pares de teste de trem. A validação do modelo é feita no conjunto de validação (" test"), portanto, é uma validação independente.

Dima Lituiev
fonte