Por que a estimativa CV do erro de teste subestima o erro real de teste?

10

Entendo que a estimativa de validação cruzada do erro de teste com dobra k geralmente subestima o erro de teste real. Estou confuso por que esse é o caso. Entendo por que o erro de treinamento geralmente é menor que o erro de teste - porque você está treinando o modelo com os mesmos dados em que está calculando o erro! Mas esse não é o caso da validação cruzada - a dobra em que você mede o erro é especificamente deixada de fora durante o processo de treinamento.

Além disso, é correto dizer que a estimativa de validação cruzada do erro de teste é enviesada para baixo?

Rachel Kogan
fonte
11
Onde você vê isso afirmado? Você pode dar algumas referências?
horaceT
11
(+1) eu vi a mesma afirmação e eu acredito que é correto, mas eu não entendo a lógica quer
KevinKim

Respostas:

9

Para dar um exemplo: relatar apenas o erro de CV de um modelo é problemático caso você tenha vários modelos originalmente (cada um com um certo erro de CV e variação de erro), use esse erro para escolher o modelo mais adequado para sua aplicação. Isso é problemático porque, em cada modelo, você ainda tem uma certa chance de ter sorte / azar (e obter melhores / piores resultados) - e ao escolher um modelo, você provavelmente também escolheu aquele em que teve mais sorte. Portanto, relatar esse erro como estimativa final de erro tende a ser excessivamente otimista.

Se você quiser se aprofundar nos detalhes: esta resposta está vinculada a alguns artigos fáceis de ler sobre este problema: Uso indevido de validação cruzada (relatório de desempenho para obter o melhor valor de hiperparâmetro)

Como @cbeleites aponta: isso é problemático no caso de se usar o erro CV de dobra k obtido para, por exemplo: a) escolher um melhor modelo dentre vários modelos, usando, por exemplo, hiperparâmetros diferentes, que fazem parte do processo de treinamento eb) relata o mesmo erro que o erro de teste em vez de usar um conjunto de testes separado e retido. Se você pretendia solicitar o erro puro do CV em si - sem usá-lo para escolher qualquer modelo - a resposta de @cbeleites é mais provável do que você está procurando.

geekoverdose
fonte
Novamente, o problema aqui está relatando um erro de treinamento (treinamento como em: esta estimativa é usada no processo de obtenção do único modelo final) para um erro de generalização - independentemente de esse erro ter sido calculado por meio de validação cruzada, espera ou qualquer outra coisa. outro método de estimativa de erro.
cbeleites infeliz com SX
11
@cbeleites Novamente, o verdadeiro argumento - eu normalmente assumo que os resultados do CV serão de alguma forma usados ​​para a seleção do modelo (que para alguns é a razão do uso do CV em primeiro lugar) -, portanto, aponte isso. Atualizei minha resposta de acordo.
geekoverdose
9

Não, se feita corretamente, a validação cruzada fold tende a superestimar o erro de generalização, ou seja, possui um viés pessimista (geralmente leve). Ou seja, fornece uma estimativa imparcial do erro de generalização para o modelo substituto em questão. Porém, à medida que o erro do modelo diminui com o aumento do tamanho da amostra de treinamento (também conhecido como curva de aprendizado), o modelo substituto, em média, tem (um pouco) maior erro de generalização verdadeiro do que o modelo treinado em todo o conjunto de dados - que é o modelo cujo erro é aproximado pela validação cruzada.k

Feito adequadamente, aproximadamente, significa que a divisão em conjuntos de teste e treinamento na validação cruzada realmente leva a casos de teste que são verdadeiramente independentes do modelo.

No entanto, existem várias armadilhas que comprometem essa independência . Dependendo do grau de comprometimento dos dados de teste e da adequação do modelo, essa falta de independência significa que o erro de validação cruzada se torna de fato um erro de treinamento. Ou seja, em suma, você pode acabar com um viés otimista severo (subestimando o erro de generalização real).
IMHO, é importante entender que a maioria dessas armadilhas não é exclusiva da validação cruzada, mas é melhor caracterizada como divisão incorreta no trem e no conjunto de testes : elas podem (e acontecem) da mesma forma com outros esquemas de validação, como hold out ou independentes conjuntos de testes que de fato não são tão independentes quanto se supõe.

Aqui estão alguns exemplos dos erros mais comuns ao dividir:

  • A resposta de @ geekoverdose dá um exemplo de como usar descaradamente uma estimativa de erro de treinamento interno (!) como erro de teste.
    De maneira mais geral, qualquer tipo de estimativa de erro usada para otimização de modelo orientada a dados é um erro de treinamento, pois ainda há treinamento em andamento usando essa estimativa de erro.
  • Variáveis ​​de confusão não levadas em consideração para a divisão.
    Uma linha na matriz de dados não constitui necessariamente um caso independente, por exemplo,
    • Tratar medições repetidas do mesmo caso / sujeito / paciente como "independentes"
    • em geral, ignorando / ignorando o agrupamento forte nos dados
    • não estar ciente da deriva contínua no processo de geração de dados (futuros casos desconhecidos vs. apenas casos desconhecidos), ...

cbeleites descontentes com o SX
fonte
0

Primeiro, deixe-me esclarecer os termos usados ​​na pergunta, como eu entendo. Normalmente, começamos com um conjunto de dados de treinamento, usamos a validação cruzada k-fold para testar diferentes modelos (ou conjuntos de hiperparâmetros) e selecionamos o melhor modelo com o menor erro CV. Portanto, a 'estimativa de validação cruzada do erro de teste' significa usar o erro CV mais baixo como erro de teste, não apenas o erro CV de um modelo aleatório (que é o caso discutido pelos cbeleites, mas não é o que normalmente fazemos). O 'erro real de teste' em questão é o erro que obtemos ao aplicar o melhor modelo de CV a um conjunto infinito de dados de teste, supondo que possamos obtê-lo. O erro de CV depende do conjunto de dados específico que possuímos, e o erro de teste real depende do melhor modelo de CV selecionado, que também depende do conjunto de dados de treinamento. Portanto, a diferença entre o erro CV e o erro de teste depende de diferentes conjuntos de dados de treinamento. Então a pergunta se torna: se repetirmos o processo acima muitas vezes com conjuntos de dados de treinamento diferentes e calcularmos a média dos dois erros, respectivamente, por que o erro CV médio é menor que o erro médio de teste, ou seja, o erro CV é tendencioso para baixo? Mas antes disso, isso sempre acontece?

Normalmente, é impossível obter muitos conjuntos de dados de treinamento e conjuntos de dados de teste contendo linhas infinitas. Mas é possível fazer isso usando dados gerados por simulação. No "capítulo 7 Model Assessment and Selection" do livro "The Elements of Statistical Learning" de Trevor Hastie, et al. , inclui esse experimento de simulação.

A conclusão é que, usando CV ou bootstrap, "... a estimativa de erro de teste para um conjunto de treinamento específico não é fácil em geral, dados apenas os dados desse mesmo conjunto de treinamento". Por "não é fácil", eles significam que o erro CV pode subestimar ou superestimar o verdadeiro erro de teste, dependendo de diferentes conjuntos de dados de treinamento, ou seja, a variação causada por diferentes conjuntos de dados de treinamento é bastante grande. E quanto ao viés? O kNN e o modelo linear que eles testaram quase não são tendenciosos: o erro CV superestima o erro de teste real de 0 a 4%, mas alguns modelos "como árvores, validação cruzada e tira de inicialização podem subestimar o erro real de 10%, porque o erro a busca pela melhor árvore é fortemente afetada pelo conjunto de validação ".

Para resumir, para um conjunto de dados de treinamento específico, o erro CV pode ser maior ou menor que o erro de teste real. Para o viés, o erro médio de CV pode variar de um pouco mais alto a muito menor do que o erro médio de teste verdadeiro, dependendo dos métodos de modelagem.

O motivo da subestimação, como mencionado acima, é que a seleção de hiperparâmetros para o melhor modelo depende, em última análise, do conjunto de dados de treinamento específico que obtemos. Um pouco mais, deixe que os melhores hiperparâmetros sejam M1 neste conjunto de dados de treinamento específico. Porém, M1 pode não ser o melhor hiperparâmetro em outro conjunto de dados de treinamento, o que significa que o erro CV mínimo é menor que o erro CV de M1. Assim, os erros CV esperados que obtemos do processo de treinamento são muito provavelmente menores que o erro CV M1 esperado. A única vez em que o erro CV mínimo de um determinado conjunto de dados de treinamento não é tendencioso é quando o melhor modelo é sempre o melhor independente dos conjuntos de dados de treinamento. Por outro lado, o erro CV também pode superestimar um pouco o verdadeiro erro de teste, conforme discutido pelos cbeleites. Isso ocorre porque o erro CV de k fold é obtido usando um pouco menos de dados de treinamento para treinar o modelo (para 10 vezes cv, use dados de 90%), ele é enviesado para cima contra o erro verdadeiro, mas não muito. Portanto, existem dois vieses em direções diferentes. Para o método de modelagem, o excesso de adequação, usando menos CV de dobra, por exemplo, 5 vezes versus 10 vezes, pode resultar em menos viés.

Tudo dito, isso não ajuda muito na prática: geralmente só obtemos um conjunto de dados 'particular'. se mantivermos entre 15% e 30% como dados de teste e selecionar o melhor modelo por CV nos demais como dados de treinamento, as chances são de que o erro CV será diferente do erro de teste, pois ambos diferem do erro de teste esperado. Podemos suspeitar que o erro CV seja muito menor que o erro de teste, mas não saberemos qual deles está mais próximo do verdadeiro erro de teste. A melhor prática pode ser apenas apresentar as duas métricas.

Ben2018
fonte