分类模型中的随机状态参数

2024-09-24 06:26:26 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能解释为什么随机的状态参数对模型有如此大的影响吗?在

我有一个RandomForestClassifier模型,并想设置random_state(用于重现性pourpouses),但根据我使用的值,我得到的总体评估指标(F1分数)上的值非常不同

例如,我试图用100个不同的随机状态值来拟合同一个模型,在训练广告测试之后,最小的F1值为0.64516129,最大值为0.808823529)。这是一个巨大的区别。在

这种行为似乎也使两种模式很难进行比较。在

有什么想法?在


Tags: 模型random指标分数f1广告state总体
1条回答
网友
1楼 · 发布于 2024-09-24 06:26:26

如果随机状态影响结果,则意味着模型的方差。在随机森林的情况下,这简单地意味着你使用了太小的森林,并且应该增加树的数量(由于袋装-减少方差)。在scikit-learn中,这是由构造函数中的n_estimators参数控制的。在

为什么会这样?每种最大似然法都试图使误差最小化,从材料角度来看,误差通常可以分解为偏差和方差[+噪声](见偏差-方差dillema/tradeoff)。偏差是指你的模型必须最终达到期望值的程度,这部分误差通常来自于一些先前的假设,例如对非线性问题使用线性模型等。方差是指当你在不同的数据子集上训练(或使用不同的超参数,对于随机方法,随机种子是一个参数。在训练过程中,超参数由我们初始化,参数由模型本身学习。最后-噪声是来自问题本身(或数据表示)的不可减少的错误。因此,在您的例子中,您只是遇到了具有高方差的模型,决策树以其极高的方差(和较小的偏差)而闻名。因此,为了减少方差,布雷曼提出了特定的装袋方法,即今天所说的随机森林。森林面积越大,方差减小的效果越强。特别是一棵树的森林具有巨大的方差,对于中等大小的问题,1000棵树的森林几乎是确定性的。在

总而言之,你能做些什么?在

  • 增加树木的数量-这是必须的,这是很好理解和合理的方法
  • 在评估过程中,将随机种子作为一个超参数来处理,因为这正是一个元知识,如果你不想增加森林的大小,你需要事先修正它。在

相关问题 更多 >