我正在使用R包randomForest
对一些生物学数据进行回归。我的训练数据大小是38772 X 201
。
我只是想知道-对于树的数量ntree
和每个级别mtry
的变量数量来说,什么是一个好的值?有没有近似公式来找出这样的参数值?
我的输入数据中的每一行都是一个代表氨基酸序列的200个字符,我想构建一个回归模型来使用这样的序列来预测蛋白质之间的距离。
发布于 2012-12-20 00:29:04
mtry的缺省值是非常合理的,因此实际上没有必要弄乱它。有一个用于优化此参数的函数tuneRF
。但是,请注意这可能会导致偏见。
没有对引导复制的数量进行优化。我经常从ntree=501
开始,然后绘制随机森林对象。这将显示基于OOB误差的误差收敛。你希望有足够的树来稳定误差,但不要太多,以至于你过度关联集成,这会导致过拟合。
这里是警告:变量相互作用稳定的速度比误差慢,因此,如果你有大量的自变量,你需要更多的重复。我会将ntree保留为奇数,这样就可以打破平局。
对于你的问题的规模,我会启动ntree=1501
。我还建议参考已发表的变量选择方法之一,以减少您的自变量数量。
发布于 2012-12-20 00:24:23
简短的回答是否定的。
当然,对于ntree
和mtry
,randomForest
函数都有默认值。mtry
的默认设置通常(但不总是)是合理的,而通常情况下,人们会希望将ntree
从默认的500增加很多。
ntree
的“正确”值通常不是什么大问题,因为稍加修改就会很明显,模型中的预测在一定数量的树之后不会有太大变化。
你可以花很多时间(阅读:浪费)在mtry
(以及sampsize
、maxnodes
和nodesize
等)上,这可能会带来一些好处,但在我的经验中并不是很多。然而,每个数据集都是不同的。有时你可能会看到很大的不同,有时根本看不到。
插入符号包有一个非常通用的函数train
,它允许您对各种模型的参数值进行简单的网格搜索,比如mtry
。我唯一的警告是,使用相当大的数据集执行此操作可能会非常耗时,因此请注意这一点。
此外,不知何故,我忘记了ranfomForest包本身有一个tuneRF
函数,该函数专门用于搜索mtry
的“最佳”值。
发布于 2016-03-01 18:27:04
这篇论文能帮上忙吗?Limiting the Number of Trees in Random Forests
抽象。本文的目的是提出一种简单的过程,即先验地确定要组合的最小分类器数量,以获得与较大集成组合所获得的预测精度水平相似的预测精度水平。该程序是基于McNemar的非参数显著性检验。先验地知道给出最佳预测精度的分类器集成的最小大小,构成了时间和内存成本的增益,特别是对于大型数据库和实时应用。在这里,我们将此过程应用于具有C4.5决策树的四个多分类器系统(Breiman的装袋,Ho的随机子空间,它们的组合,我们标记为‘Bagfs’,以及Breiman的随机森林)和五个大型基准数据库。值得注意的是,所提出的过程也可以很容易地扩展到决策树以外的其他基本学习算法。实验结果表明,可以显著限制树木的数量。我们还表明,获得最佳预测精度所需的最小树数量可能会因分类器组合方法的不同而不同
他们从不使用超过200棵树。
https://stackoverflow.com/questions/13956435
复制相似问题