Esiste un modo per disabilitare la funzione di regolazione dei parametri (griglia) in CARET?


15

CARET utilizzerà automaticamente una griglia di ottimizzazione predefinita per costruire vari modelli prima di selezionare un modello finale e quindi addestrare il modello finale sui dati di allenamento completi. Posso fornire alla mia griglia di ottimizzazione solo una combinazione di parametri. Tuttavia, anche in questo caso, CARET "seleziona" il modello migliore tra i parametri di ottimizzazione (anche se in questo caso ne esiste solo uno), quindi adatta il modello finale a tutti i dati di allenamento. Questo è un passaggio in più che vorrei evitare.

Come posso semplicemente saltare la fase di ricerca del modello attraverso le variazioni nella griglia di ottimizzazione e forzare CARET a basarsi su tutti i dati di addestramento (oltre a chiamare direttamente la libreria di modelli sottostante)?


1
La domanda non è chiara, il che probabilmente spiega perché hai ricevuto risposte che rispondono a domande diverse, vale a dire 1) Come faccio a dire al cursore di saltare la convalida del modello E l'ottimizzazione? e 2) Come posso disattivare solo la regolazione del modello?
Johan Larsson

Risposte:


17

È possibile specificare method="none"in trainControl. Per esempio:

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

Non sono sicuro quando questo è stato implementato.


9

Il modo migliore sarebbe fornire esplicitamente il frame di dati tuneGrid. Ad esempio, la foresta casuale ha un solo parametro di ottimizzazione, "mtry", che controlla il numero di funzioni selezionate per ciascun albero.

Per impostare mtry su un valore specifico, è possibile scegliere l'impostazione predefinita randomForest (? RandomForest):

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

dove M è l'unico valore del parametro di ottimizzazione che si desidera utilizzare.

per più parametri di regolazione, procedere come segue:

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

Benvenuti sul nostro sito, Brent! Grazie per aver seguito questa vecchia domanda.
whuber

4
Il suggerimento che segue method="none"è la soluzione migliore.
topepo

1

Non penso sia possibile (almeno non era possibile da alcune versioni fa). Si può ridurre l'impatto delle prestazioni impostando solo una singola partizione di ricampionamento nei dati di allenamento (ma il cursore formerebbe comunque un modello due volte)

Sembra una funzionalità utile, quindi vorrei fare un ping all'autore del pacchetto.


Mi dispiace che questa risposta sia obsoleta ora
smci
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.