使用 GBM 测试参数(即交互深度、minchild、采样率等)有哪些有用的指南?
假设我有 70-100 个特征,人口为 200,000,我打算测试 3 和 4 的交互深度。显然,我需要做一些测试,看看哪种参数组合最适合样本外。有关如何处理此测试设计的任何建议?
使用 GBM 测试参数(即交互深度、minchild、采样率等)有哪些有用的指南?
假设我有 70-100 个特征,人口为 200,000,我打算测试 3 和 4 的交互深度。显然,我需要做一些测试,看看哪种参数组合最适合样本外。有关如何处理此测试设计的任何建议?
caret 包可以帮助您针对您的问题优化参数选择。caretTrain 小插图展示了如何使用 10 倍重复交叉验证来调整 gbm 参数 - 其他优化方法可用,它们都可以使用 foreach 包并行运行。用于vignette("caretTrain", package="caret")
阅读文档。
该软件包支持 gbm 模型的调整shrinkage
、n.trees
和interaction.depth
参数,但您可以添加自己的。
对于启发式,这是我最初的方法:
shrinkage
: 尽可能小(gbm 手册对此有更多说明,但一般来说,较小的值不会出错)。您的数据集很小,所以我可能从 1e-3 开始
n.trees
:我通常会创建一个初始模型,添加越来越多的树,直到gbm.perf
说我有足够的树(实际上,通常是该值的 1.2 倍),然后将其用作进一步分析的指南。
interaction.depth
: 你已经有这个想法了。也尝试较小的值。最大值是 floor(sqrt(NCOL(data))。
n.minobsinnode
: 我发现调整这个变量真的很重要。您不希望它太小以至于算法发现太多虚假特征。