我对这句话的含义感到不舒服stepFactor
的参数tuneRF http://www.inside-r.org/packages/cran/randomForest/docs/tuneRF函数用于调整mtry
进一步使用的参数randomForest http://www.inside-r.org/packages/cran/randomForest/docs/randomForest功能。
的文档tuneRF
说stepFactor
是一个大小
被选中的mtry
放气或充气。
显然,自从mtry
是随机选择的多个变量,它必须是整数,但是我在网上看到了很多使用的例子stepFactor=1.5
。
起初我以为R默认使用nextmtry
等于floor(mtry_current-stepFactor)
,但事实证明我错了。
此外,我不明白 R 命令显示search left... search right...
while tuneRF
工作中。
我认为这是有关充气或放气的信息mtry
参数,但我的假设结果并不正确。
总结一下我对我的疑问的冗长且不太优雅的描述,我的问题是:
为什么是stepFactor
不是整数??
后续如何mtry
选择的价值观?
向左/向右搜索实际上意味着什么?
任何帮助将非常感激! :)
下面是如何进行的总结tuneRF
works:
-
a. Set mtry默认值 sqrt(p) 进行分类,以及p/3 用于回归(其中p= 变量总数)
b.计算随机森林的袋外 (OOB) 错误(例如 error_default)mtry设置为上面找到的默认值
-
A。向左看:设置mtry= 默认值/步长因子。例如,如果 stepFactor=1.5 并且您的默认起始值为 8,mtry将设置为 8/1.5=5.33,向上舍入为整数,得到 6
b.计算 OOB 错误,例如 error_left
-
A。向右看:设置mtry= 默认值*步长因子。继续我的例子,mtry将设置为 8*1.5=12
b.计算 OOB 错误,例如 error_right
-
我。如果 (error_default mtry是默认值
二.如果不满足前面的条件,但errors_default和error_right/error_left之间的增量小于improve参数,最佳mtry是默认值
三.不失一般性,如果不满足条件,且 if error_right improve, set mtry为 mtry_right (12)。从现在开始,永远走右边
如果 4.iii.已验证,迭代:设置mtry为 mtry_right*stepFactor (在我的示例中,12*1.5=18),计算 OOB 误差并将其与上一步获得的误差进行比较(在我的示例中,对于mtry=12)。如果误差新误差较小,并且误差减少的增益足够(即 >improve),选择新的mtry并继续重复这些步骤,否则停止并返回当前mtry作为最好的mtry
您设置的 stepFactor 越小(例如 1.1、1.2),则值越多mtry您尝试(精细搜索),您设置的stepFactor越大(例如2、2.5),您尝试的值越少(粗略搜索)。此外,具有较低的值improve,搜索将持续更长时间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)