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.
cross-validation
usuário815423426
fonte
fonte
Respostas:
Você pode adicionar a essa lista:
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.
fonte
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.
fonte
Achei uma das referências vinculadas no artigo da Wikipedia bastante útil
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.48.529&rep=rep1&type=pdf
"Um estudo de validação cruzada e bootstrap para estimativa de precisão e seleção de modelos", Ron Kohavi, IJCAI95
Ele contém uma comparação empírica para um subconjunto de técnicas de CV. A versão tl; dr é basicamente "use 10 vezes o CV".
fonte
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 .
fonte