Ann*_*ika 7 optimization r machine-learning data-mining random-forest
我stepFactor对tuneRF函数参数的含义感到不舒服,该函数用于调整函数中mtry进一步使用的参数randomForest.
记录tuneRF说,这stepFactor是所选择mtry的放气或膨胀的程度.显然,由于mtry是随机选择的一些变量,它必须是一个整数,但是我在网上看到了许多例子stepFactor=1.5.起初我认为R默认使用下一个mtry等于floor(mtry_current-stepFactor),但事实证明我错了.此外,我不明白显示R命令search left... search right...时tuneRF正在工作.我认为这是关于膨胀或mtry缩小参数的信息,但我的假设并没有证明是正确的.
总结这个长期而不是太优雅的描述我的怀疑,我的问题是:为什么stepFactor不是整数?
如何mtry选择后续值?左/右搜索实际意味着什么?
任何帮助将非常感谢!! :)
以下是tuneRF工作原理的摘要:
一个.将mtry设置为默认值sqrt(p)进行分类,将p/3设置为回归(其中p =变量总数)
湾 计算随机森林的out-of-bag(OOB)错误(比如error_default),将mtry设置为上面找到的默认值
一个.向左看:设置mtry =默认值/ stepFactor.例如,如果stepFactor = 1.5并且您的默认起始值为8,则mtry将设置为8/1.5 = 5.33,向上舍入为整数,得到6
湾 计算OOB错误,比如error_left
一个.向右看:设置mtry =默认值*stepFactor.继续我的例子,mtry将被设置为8*1.5 = 12
湾 计算OOB错误,比如error_right
一世.如果(error_default <error_right)OR(error_default <error_left),最好的mtry是默认值
II.如果不满足先前条件,但errors_default和error_right/error_left之间的增量小于改善参数,则最佳mtry是默认值
III.在不失一般性的情况下,如果不满足条件,并且如果error_right <error_left和if(error_default-error_right)> 改进,则将mtry设置为mtry_right(12).从现在开始,总是向右走
如果4.iii.验证,迭代:将mtry设置为mtry_right*stepFactor(在我的示例中,12*1.5 = 18),计算OOB错误并将其与上一步获得的错误进行比较(在我的示例中,对于mtry = 12).如果错误新错误较小,并且错误减少的增益足够(即> 改善),请选择新的mtry并继续重复这些步骤,否则停止并返回当前mtry作为最佳mtry
您设置的较小的stepFactor(例如,1.1,1.2),您尝试的mtry值(精细搜索)越多,您设置的stepFactor越大(例如,2,2.5),您尝试的值越少(粗略搜索).此外,如果改进值较低,搜索将持续更长时间.