2012-08-27 14 views
5

Sto ottimizzando alcuni modelli, uno dei quali è radialSVM utilizzando il pacchetto caret. Sto creando una griglia di ottimizzazione in preparazione per scorrere un ciclo per trovare i parametri migliori da utilizzare per il modello.Sequenza di incrementi variabili con R?

Una cosa che sarebbe estremamente utile è una sorta di sequenza di incremento variabile. Ad esempio, mi piacerebbe iniziare con piccoli valori di parametro incrementati a piccoli passi. Più vado, più grandi passi posso prendere. Ho scoperto che i piccoli parametri cambiano il modello un po ', quindi mi piacerebbe esplorarli con maggiore attenzione.

Sarebbe fantastico aumentare la sequenza di qualche moltiplicatore del passo corrente, ad esempio x <- x+5*x. È possibile ciò con qualcosa che esiste già, (come un uso creativo di seq()) o devo usare un ciclo?

risposta

5

Che ne dite di qualcosa di simile:

0.0001 * 6^(0:10) 
# [1] 0.0001 0.0006 0.0036 0.0216 0.1296 0.7776 4.6656 
# [8] 27.9936 167.9616 1007.7696 6046.6176 
+0

Elegante e semplice -- Grazie! – Hendy

2

Si potrebbe utilizzare la distribuzione esponenziale:

qexp((1:100)/100) 

> qexp((1:100)/100) 
    [1] 0.01005034 0.02020271 0.03045921 0.04082199 0.05129329 0.06187540 0.07257069 0.08338161 
    [9] 0.09431068 0.10536052 0.11653382 0.12783337 0.13926207 0.15082289 0.16251893 0.17435339 

regolarlo avere differenze che soddisfano le esigenze:

diff(20* qexp((1:100)/100)) 
[1] 0.2030474 0.2051300 0.2072557 0.2094260 0.2116422 0.2139058 0.2162183 0.2185814 
[9] 0.2209967 0.2234660 0.2259911 0.2285739 0.2312164 0.2339208 0.2366892 0.2395238