我正在优化一些不同的模型,其中之一是使用该caret
包的radialSVM。我正在创建一个调整网格,以准备循环循环以找到用于模型的最佳参数。
非常有用的一件事是某种变化的增量序列。例如,我想从以小步骤递增的小参数值开始。我走的越大,我可以采取的步骤就越大。我发现小参数确实会改变模型很多,所以我想更仔细地探索它们。
让序列增加当前步骤的某个乘数会很棒,比如x <- x+5*x
。这对于已经存在的东西是否可行(比如创造性地使用seq()
),还是我需要使用循环?
像这样的东西怎么样:
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
您可以使用指数分布:
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
调整它以具有满足您需求的差异:
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