“分层”随机森林?

机器算法验证 r 机器学习 分类 随机森林 大车
2022-04-14 16:18:00

背景

我正在使用随机森林根据大量(> 80)预测变量对约 900 个对象进行分类。我将这些 70:30 用于训练和测试。整个模型做得相当好,在测试集上给出了 80% 的错误率。

然而,不同类别的准确率差异很大,有些超过 95%,而有些则落后于 50-60%。这是因为有些类彼此之间非常不同,而另一些则非常相似。如果我使用仅包含这些类的子集来构建森林,我可以为这些麻烦的类实现更高的准确性。即子森林能够绘制出细微的尺度差异,但是通过使用非常不同的预测器。

我最终想推断模型以预测另外 40,000 个对象的类别,因此我需要所有类别的准确度尽可能高。我正在使用RrandomForest包。

问题

  1. 有没有办法强制随机森林认识到应该使用不同的预测变量集来分割相似的类?(我对随机森林的有限理解是这应该发生吗?)。有关类似问题,请参阅此帖子。

  2. 建立一个粗略的随机森林是否合理(例如在 3 个类之间分离,其中 2 个是高度不同的,第三个是相似对象的合并),然后在第三个类上运行额外的随机森林?因此,如果一个对象被归类为不同类别之一,它将被排除在外,而如果它是第三类之一,它将进入更远的子森林。我可以设想这将适用于训练集,但我不确定如何通过相同的过程获得测试集。也许根据链接的问题,然后我会根据更粗略的随机森林的结果创建新变量。但是,将结果外推到其他 40,000 个对象将变得不可能。

提前为这些问题道歉。我对使用随机森林还是很陌生,这篇文章可能只是揭示了我对整个方法的无知。或者也许这种方法已经有了名字,我只是不知道要搜索什么。


编辑

我刚刚发现这篇文章可能涵盖了类似的情况。答案建议使用投票系统来合并多个随机森林,我可以根据我的情况调整这种方法吗?因此,当外推到 40,000 个对象时,是否按照与训练我的初始森林时相同的步骤运行它们?然后用结果来通知最后的班级?我很感激人们对此有任何想法。

0个回答
没有发现任何回复~