Existe uma maneira de desativar o recurso de ajuste de parâmetros (grade) no CARET?


15

O CARET usará automaticamente uma grade de ajuste pré-especificada para criar vários modelos antes de selecionar um modelo final e depois treinar o modelo final com os dados completos do treinamento. Eu posso fornecer à minha própria grade de sintonia apenas uma combinação de parâmetros. No entanto, mesmo neste caso, o CARET "seleciona" o melhor modelo entre os parâmetros de ajuste (embora exista apenas um neste caso) e, em seguida, ajusta o modelo final a todos os dados de treinamento. Este é um passo extra que eu gostaria de evitar.

Como eu simplesmente pulo a etapa de pesquisa de modelo entre as variações na grade de ajuste e forço o CARET a criar todos os dados de treinamento (além de chamar diretamente a biblioteca de modelos subjacente)?


11
A pergunta não é clara, o que provavelmente explica por que você recebeu respostas respondendo a perguntas diferentes, a saber 1) Como eu digo ao sinal para ignorar a validação e o ajuste do modelo? e 2) Como desativo apenas o ajuste do modelo?
— Johan Larsson

Respostas:


17

Você pode especificar method="none"no trainControl. Por exemplo:

train(Species ~ ., data=iris, method="rf", tuneGrid=data.frame(mtry=3),
  trControl=trainControl(method="none"))

Não tenho certeza de quando isso foi implementado.


9

A melhor maneira seria fornecer explicitamente o quadro de dados tuneGrid. Por exemplo, a floresta aleatória possui apenas um parâmetro de ajuste, 'mtry', que controla o número de recursos selecionados para cada árvore.

Para definir mtry em um valor específico, você pode escolher o padrão randomForest (? RandomForest):

model <- train(x = X, y = Y, method = 'rf', tuneGrid = data.frame(.mtry = M))

onde M é o valor único do parâmetro de ajuste que você deseja usar.

para vários parâmetros de ajuste, faça o seguinte:

tuneGrid = data.frame(.par1 = P1, .par2 = P2, .par3 = P3)

Bem-vindo ao nosso site, Brent! Obrigado por acompanhar esta pergunta antiga.
— whuber

4
A sugestão abaixo method="none"é a melhor solução.
— Topepo

1

Eu não acho que é possível (pelo menos não era possível a partir de algumas versões atrás). Pode-se reduzir o impacto no desempenho configurando apenas uma única partição de reamostragem nos dados de treinamento (mas o cursor ainda treinaria um modelo duas vezes)

Isso soa como um recurso útil, então eu gostaria de executar ping no autor do pacote.


Desculpe, esta resposta está obsoleta agora
— smci 16/07/2015
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.