纠正错误分类的随机森林预测该怎么办?

时间:2018-11-29 09:45:02

标签: machine-learning random-forest

我已经训练了一个多类随机森林模型,因此,如果该模型预测出错误,我们可以手动对其进行纠正,因此,事情就是我们可以用校正后的标签做些什么并使预测更好。

想法:

  1. 无法一次又一次地对模型进行训练。(训练了70万行,因此可能会将新数据视为噪声)

  2. 无法训练RF的小型模型,因为它们也会造成混乱。

  3. 与NN相比,Random FOrest效果更好,所以不要考虑那样做。

1 个答案:

答案 0 :(得分:1)

  • “手动正确”是什么意思-在决策树中执行的各个不同点可能导致错误的预测,更不用说众多决策树了用来获得最终的预测。

  • 我认为您的第一点有些误解。除非分布是非平稳的(在这种情况下,您训练的模型起初价值会降低),否则将新数据视为“噪声”,因为将其包含在最终模型中不太可能会更改未来的预测这么多。据我所知,这是应该的,没有指定其他因素,例如分布的变化等。也就是说,如果您要预测的未来数据看起来更像是您未能正确预测的数据,那么您确实希望增加在新模型中对该样本进行分类的重要性。

无论如何,听起来您正在描述online learning problem(您想要一个模型来响应流数据而更新自身)。您可以在搜索在线随机森林时找到一些一般性想法,例如:

  • [在线随机森林](http://www.ymer.org/amir/research/online-random-forests/)和[在线多类lpboost](https://github.com/amirsaffari/online-multiclass-lpboost)描述了一个类似于您可能想到的一般框架:模型的输入是新的观察;森林通过删除性能不佳的树木并最终种植包含新数据的新树木来学习这些新数据。
  • 此处描述的一般思想用于多种增强算法(例如,AdaBoost将“弱学习者”的集合聚合在一起,例如,在不同+不完整的数据子集上生长的单个决策树。通过对后来的弱学习者进行专门针对以前分类错误的实例的训练来改善整体效果。这里的想法是,您当前模型错误的那些实例对于将来的性能改进最有用。
  • 我不知道链接的实现方式如何实现这一点的具体细节,尽管该想法与您可能期望的一致。

您可以尝试使用这些算法或通过搜索找到的其他类似算法。

总而言之,当旧数据随着时间的推移而过时时,我怀疑像在线随机森林算法这样的东西相对来说比较好。如果不是这样(即,如果您的未来数据和早期数据是从同一分布中提取的),那么对我来说,连续重新训练模型(这是指随机森林本身以及任何交叉验证/模型选择程序)对我来说并不明显您可能必须将森林预测转换为最终任务),这是一个糟糕的主意,它是在非常高维的特征空间中对数据进行模运算,或者是非常快的传入数据。