Eu li várias postagens sobre o pacote de sinal de intercalação e estou especificamente interessado na função de trem . No entanto, não tenho certeza se entendi corretamente como a função do trem funciona.
Para ilustrar meus pensamentos atuais, compus um exemplo rápido.
Primeiro, um especifica uma grade de parâmetros. Digamos que eu use o método gbm ; portanto, a grade de parâmetros para o meu modelo pode parecer:
grid <- expand.grid( .n.trees=seq(10,50,10), .interaction.depth=seq(1,4,1), .shrinkage=c(0.01,0.001), .n.minobsinnode=seq(5,20,5))
Posteriormente, os parâmetros de controle para train (trainControl) são definidos. Gostaria de saber se meus pensamentos sobre validação cruzada usando train estão corretos e, portanto, neste exemplo, uso o seguinte:
train_control <- trainControl('cv',10)
Por fim, a função de trem é executada. Por exemplo:
fit <- train(x,y,method="gbm",metric="Kappa",trControl=train_control,tuneGrid=grid)
Agora, a maneira como presumo que o trem funciona é a seguinte:
- No exemplo acima, existem 160 (5 * 4 * 2 * 4) combinações possíveis de parâmetros
- Para cada combinação de parâmetros, o trem executa uma validação cruzada de 10 vezes
- Para cada combinação de parâmetros e para cada dobra (das 10 dobras), a métrica de desempenho (Kappa no meu exemplo) é calculada (no meu exemplo, isso implica que 1600 Kappa's são computados)
- Para cada combinação de parâmetros, a média da métrica de desempenho é calculada nas 10 dobras
- A combinação de parâmetros que possui a melhor métrica de desempenho médio é considerada os melhores parâmetros para o modelo
Minha pergunta é simples, meus pensamentos atuais estão corretos ?
fonte