我正在优化一些不同的模型,其中一个是使用caret
包的radialSVM。我正在创建一个调整网格,准备循环循环以找到用于模型的最佳参数。
有一点非常有用的是某种不同的增量序列。例如,我想从小步骤递增的小参数值开始。我走的越大,我可以采取更大的步骤。我发现小参数确实会改变模型,所以我想更仔细地探索它们。
通过当前步骤的某个乘数(例如x <- x+5*x
)来增加序列是很棒的。是否可以使用已经存在的内容(例如seq()
的创造性使用),或者我是否需要使用循环?
答案 0 :(得分:6)
这样的事情怎么样:
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
答案 1 :(得分:2)
您可以使用指数分布:
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