Recentemente me disseram que o processo que segui (componente de uma tese de mestrado) poderia ser visto como excessivo. Estou procurando entender melhor isso e ver se os outros concordam.
O objetivo desta parte do artigo é
Compare o desempenho das árvores de regressão otimizada por gradiente com as florestas aleatórias em um conjunto de dados.
Veja o desempenho do modelo final escolhido (GBM ou RF).
Os pacotes gbm
e randomForest
em R estão sendo usados, junto com
caret
.
O processo seguido foi o seguinte:
- Pré-processamento preliminar dos dados (por exemplo, conectar valores ausentes dos preditores nominais a uma categoria distinta chamada "Ausente"). A variável de destino não foi analisada em relação a qualquer pré-processamento (que era muito mínimo).
- Crie uma grade de valores para os meta-parâmetros de cada algoritmo (por exemplo, número de iterações para GBM).
- Crie 25 divisões aleatórias do conjunto de dados (65% de treinamento e 35% de teste).
Repita 25 vezes o seguinte para o GBM (cada vez que utiliza uma das divisões aleatórias de treinamento / teste. Cada vez que o treinamento e o conjunto de testes são "atuais", as mudanças de curso - isso é repetida repetição da validação cruzada)
- Use a validação cruzada de 5 vezes para encontrar as configurações de parâmetro "ideais" do algoritmo na pesquisa em grade. Nada das execuções anteriores foi usado na execução atual.
- Uma vez determinado, ajuste um modelo ao conjunto de treinamento "atual" completo e preveja o conjunto de testes "atual". Separe a medida de desempenho dessa execução.
Uma vez que 25 medidas de desempenho (na verdade uma medida específica de domínio, mas pense nela como precisão) sejam obtidas dessa maneira, siga exatamente o mesmo processo, usando exatamente as mesmas amostras independentes de treinamento e teste, para RF (mesmo processo, apenas com diferentes pesquisa na grade, é claro).
Agora, tenho 25 medidas de desempenho dos conjuntos de testes "atuais" da época para GBM e RF. Comparo-os usando um teste de classificação com sinal de Wilcoxon e também um teste de permutação. Eu achei o GBM superior. Afirmei também que a distribuição da medida de desempenho dessas 25 execuções para o GBM é o desempenho esperado do classificador final do GBM.
O que eu não fiz foi retirar um conjunto de testes aleatórios desde o início e separá-lo para ser comparado ao modelo final de GBM construído a partir de todos os dados de treinamento. Eu afirmo que o que fiz foi realmente muito melhor ao repetir o modelo de dados divididos / modelo / teste no processo de espera 25 vezes versus apenas uma vez.
Existe excesso de ajuste aqui? Como as 25 execuções foram usadas para selecionar GBM versus RF, isso significa que as medidas de desempenho adquiridas no processo não podem ser usadas como estimativa de desempenho para o modelo completo?
EDITAR Em resposta ao comentário de Wayne, aqui está o que foi feito durante cada uma das 25 execuções:
- Os dados amostrados para o i-ésimo conjunto de treinamento (i = 1, .., 25) foram divididos em 5 grupos de tamanhos iguais. Um modelo foi ajustado usando 4 dos 5 grupos, definindo os parâmetros GBM (por exemplo, número de iterações) iguais aos valores na j-ésima (j = 1, .., 18) grade.
- O desempenho no 5º grupo foi calculado usando este modelo.
- Os passos 1 e 2 foram repetidos mais 4 vezes (CV antigo e regular com k = 5). A performance foi calculada em média a partir das 5 sub-execuções e isso compôs o desempenho esperado do GBM com esse determinado conjunto de valores de parâmetros.
- As etapas 1 a 3 foram repetidas para as outras 17 "linhas" na grade.
Depois de concluídos, os melhores valores de parâmetros do exercício acima foram determinados e um GBM foi ajustado usando esses valores de parâmetros e o conjunto de treinadores. Seu desempenho foi estimado no i-ésimo conjunto de testes.
Depois que todo esse processo foi feito 25 vezes, havia 25 medidas de desempenho disponíveis para o GBM. Em seguida, eles foram reunidos para RF da mesma maneira.
Depois de comparar e escolher o GBM, examinei essas 25 medidas de desempenho e tomei a média e o Erro Stnd para determinar um intervalo de confiança para um modelo de GBM nesses dados.
Respostas:
Imagine que, em vez de apenas selecionar GBM vs RF, você estava escolhendo entre 100 classificadores GBM diferentes (supondo que o treinamento GBM use algum tipo de aleatoriedade e atribua a eles sementes aleatórias de 1 a 100). Então você escolheria um desses 100 GBMs como o melhor GBM. Mas é quase certo que um dos 100 modelos que você escolheu teve a sorte de vencer seus 99 irmãos e, portanto, sua estimativa de desempenho será otimista.
Você usou apenas dois alunos, e eles não foram treinados por um algoritmo idêntico; portanto, seu GBM único provavelmente não teve muita pressão de seleção (especialmente se ele superou drasticamente o RF), mas sua estimativa de erro ainda será um pouco otimista.
fonte
Parece que você tentou misturar duas técnicas, cada uma das quais é legítima, mas da maneira que você fez, parece que você terminará com dados vazando entre os casos.
No nível mais baixo, você parece estar usando o CV corretamente. O que sugere que o nível superior também deve ser um CV, resultando em um CV aninhado, mas seu nível superior não é CV.
No nível superior, parece que você deseja fazer uma validação de autoinicialização; nesse caso, uma autoinicialização dupla funcionaria para os níveis superior e inferior, mas seu nível superior não é uma autoinicialização adequada.
Você pode querer olhar para este artigo stackexchange. e os artigos aos quais ele vincula e, talvez, reestruture seu nível superior para ser um CV. Além disso, observe que ninguém menos que Frank Harrell posta nesse tópico e sugere que o CV seja repetido várias vezes. (Fiquei chocado ao pensar que uma repetição deveria fazê-lo.)
fonte