Compêndio de técnicas de validação cruzada


43

Gostaria de saber se alguém conhece um compêndio de técnicas de validação cruzada com uma discussão das diferenças entre eles e um guia sobre quando usar cada um deles. A Wikipedia possui uma lista das técnicas mais comuns, mas estou curioso para saber se existem outras técnicas e se existem taxonomias para elas.

Por exemplo, acabei de encontrar uma biblioteca que me permite escolher uma das seguintes estratégias:

  • Aguentar
  • Bootstrap
  • K Validação cruzada
  • Deixe um fora
  • Validação cruzada estratificada
  • Validação cruzada estratificada equilibrada
  • Aguardar estratificado
  • Bootstrap estratificado

e estou tentando entender o que significa estratificado e equilibrado em bootstrapping, hold out ou CV.

Também podemos transformar este post em um wiki da comunidade, se as pessoas quiserem, e coletar uma discussão sobre técnicas ou taxonomias aqui.


Essa ótima pergunta seria ainda mais útil se pudéssemos vincular as explicações de cada um dos métodos.
mkt - Restabelece Monica

Respostas:


16

Você pode adicionar a essa lista:

  • Validação cruzada repetida
  • Validação cruzada de não-grupo
  • Fora da bolsa (para florestas aleatórias e outros modelos em saco)
  • O bootstrap 632+

Na verdade, não tenho muitos conselhos sobre como usar essas técnicas ou quando usá-las. Você pode usar o pacote de intercalação no R para comparar a validação cruzada de CV, Boot, Boot632, deixar um fora, deixar grupo fora e fora da bolsa.

Em geral, eu geralmente uso o boostrap porque é menos computacionalmente intensivo do que o CV repetido vezes k ou o CV deixado de fora. O Boot632 é o meu algoritmo de escolha, porque não requer muito mais computação que o bootstrap e demonstrou ser melhor do que a validação cruzada ou a inicialização básica em determinadas situações.

Eu quase sempre uso estimativas de erro prontas para uso em florestas aleatórias, em vez de validação cruzada. Os erros fora da bolsa são geralmente imparciais e as florestas aleatórias demoram o suficiente para serem computadas.


3
Algum conselho sobre quando usar cada um deles?
whuber

16

A validação cruzada (CV) com dobra K divide aleatoriamente seus dados em partições K, e você, por sua vez, retém uma dessas partes K como um caso de teste e agrupa as outras partes K-1 como dados de treinamento. Leave One Out (LOO) é o caso especial em que você pega os itens de dados N e faz o CV dobrado em N. Em certo sentido, Hold Out é outro caso especial, no qual você escolhe apenas uma das suas K dobras como teste e não gira em todas as K dobras.

Até onde eu sei, o CV de 10 vezes é praticamente o padrão, pois usa seus dados com eficiência e também ajuda a evitar escolhas de partições infelizes. O Hold Out não faz uso eficiente de seus dados, e o LOO não é tão robusto (ou algo parecido), mas 10 vezes é o ideal.

Se você souber que seus dados contêm mais de uma categoria e uma ou mais categorias são muito menores que as demais, algumas de suas partições aleatórias K podem nem conter nenhuma das categorias pequenas, o que seria ruim. Para garantir que cada partição seja razoavelmente representativa, use a estratificação: divida seus dados nas categorias e crie partições aleatórias escolhendo aleatoria e proporcionalmente cada categoria.

Todas essas variações no CV dobrável em K escolhem seus dados sem substituição. O bootstrap escolhe os dados com substituição, portanto, o mesmo dado pode ser incluído várias vezes e alguns dados podem não ser incluídos. (Cada "partição" também terá N itens, ao contrário do K-fold, nos quais cada partição terá N / K itens.)

No entanto, devo admitir que não sei exatamente como o bootstrap seria usado no CV. O princípio do teste e do CV é garantir que você não teste os dados em que treinou, para obter uma idéia mais realista de como sua técnica + coeficiente pode funcionar no mundo real.)

EDIT: Substituído "Hold Out não é eficiente" por "Hold Out não faz uso eficiente de seus dados" para ajudar a esclarecer, de acordo com os comentários.


11
Quando você diz que "Hold Out não é eficiente", não sei se o segui. O que você quer dizer com eficiência aqui? Ao contrário da dobra em N comum, o Hold Out não gira pelas dobras, portanto deve ser mais rápido. Em vez disso, você quer dizer que é pior combater o overfitting do que o CV N-fold normal?
Amelio Vazquez-Reina

2
Por "eficiente", quero dizer que ele não usa seus dados com eficiência. A beleza do K-fold CV é que 100% de seus dados são usados ​​para treinamento e 100% de seus dados são usados ​​para testes, o que faz uso eficiente de seus dados. A chave é, é claro, que todos os seus dados não sejam usados ​​para testes e treinamento ao mesmo tempo, o que resultaria em resultados de teste otimistas (sobreajuste). Ao fazer uma divisão estática, o Hold Out diz que, digamos, 1/3 dos seus dados nunca serão usados ​​para treinamento e 2/3 deles nunca serão usados ​​para testes, desperdiçando muitas informações em seus dados.
18711 Wayne

@Wayne O estimador de validação não é assintoticamente imparcial? Além disso, o CV simples com dobra k é mais propenso a erros do tipo II do que o CV repetido com dobra k.
chl

@chl: Eu acredito que você está certo em ambos os aspectos. Não usei CV repetido com dobra em K, mas deve ter uma variação menor, o que ajudaria.
19411 Wayne


1

... e um guia sobre quando usar cada um deles ...

Infelizmente esse problema é mais difícil do que o crédito. Existem pelo menos dois usos principais da validação cruzada: selecionar um modelo e avaliar o desempenho do modelo.

Grosso modo, se você usar uma variante CV que divide os dados usando uma alta taxa de trem para teste, isso pode ser melhor para avaliação. O uso de um conjunto de treinamento maior imitará com mais precisão o desempenho do ajuste do modelo no conjunto de dados completo.

Mas uma alta taxa de trem para teste pode ser pior para a seleção. Imagine que realmente existe um modelo "melhor" que você "deveria" escolher, mas seu conjunto de dados é bastante grande. Em seguida, modelos muito grandes que se superfiguram levemente terão quase o mesmo desempenho de CV que o modelo "melhor" (porque você estimará com êxito os parâmetros espúrios deles como desprezíveis). A aleatoriedade nos dados e o procedimento de divisão / CV geralmente fará com que você escolha um modelo de sobreajuste em vez do modelo realmente "melhor".

Veja Shao (1993), "Seleção de modelo linear por validação cruzada" para a teoria assintótica mais antiga no caso de regressão linear. Yang (2007), "Consistência da validação cruzada para comparar procedimentos de regressão" e Yang (2006), "Comparando métodos de aprendizagem para classificação" fornecem a teoria assintótica para problemas mais gerais de regressão e classificação. Mas é difícil encontrar conselhos rigorosos para amostras finitas .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.