Eu estou querendo saber como escolher um modelo preditivo depois de fazer a validação cruzada K-fold.
Isso pode ser redigido de maneira desajeitada, então deixe-me explicar com mais detalhes: sempre que executo a validação cruzada K-fold, uso K subconjuntos dos dados de treinamento e termino com K modelos diferentes.
Gostaria de saber como escolher um dos modelos K, para que eu possa apresentá-lo a alguém e dizer "este é o melhor modelo que podemos produzir".
Posso escolher qualquer um dos modelos K? Ou existe algum tipo de prática recomendada, como escolher o modelo que obtém o erro mediano do teste?
cross-validation
model-selection
Berk U.
fonte
fonte
Respostas:
Eu acho que ainda está faltando algo em sua compreensão do objetivo da validação cruzada.
Vamos esclarecer algumas terminologias, geralmente quando dizemos 'um modelo' nos referimos a um método específico para descrever como alguns dados de entrada se relacionam com o que estamos tentando prever. Geralmente, não nos referimos a instâncias específicas desse método como modelos diferentes. Então você pode dizer 'Eu tenho um modelo de regressão linear', mas você não chamaria dois conjuntos diferentes de coeficientes treinados de modelos diferentes. Pelo menos não no contexto da seleção de modelos.
Portanto, quando você faz a validação cruzada com dobra K, está testando o quão bem seu modelo é treinado por alguns dados e, em seguida, prevê dados que não foram vistos. Usamos a validação cruzada para isso, porque se você treina usando todos os dados que possui, não resta nenhum para teste. Você pode fazer isso uma vez, digamos, usando 80% dos dados para treinar e 20% para testar, mas e se os 20% escolhidos para testar contiverem vários pontos que são particularmente fáceis (ou particularmente difíceis) prever? Não teremos a melhor estimativa possível da capacidade dos modelos de aprender e prever.
Queremos usar todos os dados. Portanto, para continuar o exemplo acima de uma divisão 80/20, faríamos uma validação cruzada 5 vezes treinando o modelo 5 vezes em 80% dos dados e testando em 20%. Garantimos que cada ponto de dados termine no teste de 20% definido exatamente uma vez. Portanto, usamos todos os pontos de dados que temos para contribuir para entender como nosso modelo executa a tarefa de aprender com alguns dados e prever alguns novos dados.
Mas o objetivo da validação cruzada não é apresentar nosso modelo final. Não usamos essas 5 instâncias do nosso modelo treinado para fazer uma previsão real. Para isso, queremos usar todos os dados que temos para criar o melhor modelo possível. O objetivo da validação cruzada é a verificação do modelo, não a construção do modelo.
Agora, digamos que temos dois modelos, digamos um modelo de regressão linear e uma rede neural. Como podemos dizer qual modelo é melhor? Podemos fazer a validação cruzada com dobra K e ver qual deles é melhor na previsão dos pontos de ajuste do teste. Porém, depois que usamos a validação cruzada para selecionar o modelo com melhor desempenho, treinamos esse modelo (seja a regressão linear ou a rede neural) em todos os dados. Não usamos as instâncias reais do modelo que treinamos durante a validação cruzada para o nosso modelo preditivo final.
Observe que existe uma técnica chamada agregação de autoinicialização (geralmente abreviada para 'ensacamento') que usa instâncias de modelo produzidas de maneira semelhante à validação cruzada para criar um modelo de conjunto, mas que é uma técnica avançada além do escopo da sua pergunta aqui.
fonte
For that we want to use all the data we have to come up with the best model possible.
- Ao fazer uma pesquisa de grade com validação cruzada com dobras K, isso significa que você usaria os melhores parâmetros encontrados pela pesquisa de grade e ajustaria um modelo em todos os dados de treinamento e avaliaria o desempenho da generalização usando o conjunto de teste?Deixe-me mencionar alguns pontos além da resposta de Bogdanovist
Agora, existem algumas suposições nesse processo.
O número finito de casos significa que a medição de desempenho estará sujeita a um erro aleatório (variação) devido ao número finito de casos de teste. Essa fonte de variação é diferente (e, portanto, aumenta) a variação de instabilidade do modelo.
As diferenças no desempenho observado são devidas a essas duas fontes de variação.
A "seleção" em que você pensa é uma seleção de conjunto de dados: selecionar um dos modelos substitutos significa selecionar um subconjunto de amostras de treinamento e alegar que esse subconjunto de amostras de treinamento leva a um modelo superior. Embora isso possa ser verdade, geralmente a "superioridade" é espúria. De qualquer forma, como escolher o "melhor" dos modelos substitutos é uma otimização orientada por dados, você precisará validar (medir o desempenho) esse modelo escolhido com novos dados desconhecidos. O conjunto de testes nessa validação cruzada não é independente, pois foi usado para selecionar o modelo substituto.
Você pode olhar para o nosso artigo, trata-se de classificação em que as coisas geralmente são piores do que em regressão. No entanto, mostra como essas fontes de variação e viés se somam.
Beleites, C. e Neugebauer, U. e Bocklitz, T. e Krafft, C. e Popp, J .: Planejamento do tamanho da amostra para modelos de classificação. Anal Chim Acta, 2013, 760, 25-33.
DOI: 10.1016 / j.aca.2012.11.007
manuscrito aceito no arXiv: 1211.1323
fonte
picking "the best" of the surrogate models is a data-driven optimization, you'd need to validate (measure performance) this picked model with new unknown data. The test set within this cross validation is not independent as it was used to select the surrogate model.
e ele dizBut once we have used cross-validation to select the better performing model, we train that model (whether it be the linear regression or the neural network) on all the data.
Isso é muito comum e é crucial que uma abordagem padronizada é especificadoAchei este excelente artigo Como Treinar um Modelo Final de Aprendizado de Máquina muito útil para esclarecer todas as confusões que tenho sobre o uso de CV no aprendizado de máquina.
Basicamente, usamos CV (por exemplo, divisão 80/20, dobra em k, etc.) para estimar o desempenho de todo o procedimento (incluindo a engenharia de dados, a escolha do modelo (por exemplo, algoritmo) e hiper parâmetros, etc.) no futuro não visto. dados. E uma vez que você tenha escolhido o "procedimento" vencedor, os modelos da CV cumpriram seu objetivo e agora podem ser descartados. Você usa o mesmo "procedimento" vencedor e treina seu modelo final usando todo o conjunto de dados.
fonte
É uma pergunta muito interessante. Para deixar claro, devemos entender a diferença entre modelo e avaliação de modelo. Usamos o conjunto de treinamento completo para construir um modelo e esperamos que esse modelo seja finalmente usado.
A avaliação cruzada K fold criaria modelos K, mas todos seriam descartados. Os modelos K são usados apenas para avaliação. e Apenas produziu métricas para informar como esse modelo se ajusta aos seus dados.
Por exemplo, você escolhe o item LinearRegression algo e executa duas operações no mesmo conjunto de treinamento: um com validação cruzada de 10 vezes e outro com 20 vezes. o modelo de regressão (ou classificador) deve ser o mesmo, mas o coeficiente de correlação e o erro quadrático relativo da raiz são diferentes.
Abaixo estão duas execuções para validação cruzada de 10 e 20 vezes com weka
1ª corrida com 10 vezes
2ª corrida com 20 vezes
fonte
Não tenho certeza de que a discussão acima esteja totalmente correta. Na validação cruzada, podemos dividir os dados em Treinamento e Teste para cada execução. Usando apenas os dados de treinamento, é necessário ajustar o modelo e escolher os parâmetros de ajuste em cada classe de modelos que está sendo considerada. Por exemplo, nas redes neurais, os parâmetros de ajuste são o número de neurônios e as opções para a função de ativação. Para fazer isso, valida-se apenas os dados de treinamento .
Depois que o melhor modelo de cada classe é encontrado, o modelo de melhor ajuste é avaliado usando os dados de teste. O loop de validação cruzada "externa" pode ser usado para fornecer uma estimativa melhor do desempenho dos dados de teste, bem como uma estimativa da variabilidade. Uma discussão pode comparar o desempenho do teste para diferentes classes, como Neural Nets vs. SVM. Uma classe de modelo é escolhida, com o tamanho do modelo fixo e agora todos os dados são usados para aprender o melhor modelo.
Agora, se como parte do seu algoritmo de aprendizado de máquina você deseja selecionar constantemente a melhor classe de modelo (digamos todas as semanas), mesmo essa opção precisa ser avaliada nos dados de treinamento! A medição dos dados de teste não pode ser usada para julgar a escolha da classe do modelo se for uma opção dinâmica.
fonte
Por que usamos a validação cruzada k-fold?
A validação cruzada é um método para estimar a habilidade de um método em dados invisíveis. Como usar uma divisão de teste de trem.
A validação cruzada cria e avalia sistematicamente vários modelos em vários subconjuntos do conjunto de dados. Isso, por sua vez, fornece uma população de medidas de desempenho .
Isso também é útil para fornecer uma comparação mais diferenciada de um procedimento para outro quando você está tentando escolher quais algoritmos e procedimentos de preparação de dados usar.
Além disso, essas informações são inestimáveis, pois você pode usar a média e a dispersão para fornecer um intervalo de confiança no desempenho esperado em um procedimento de aprendizado de máquina na prática.
referência
fonte