首页 > 解决方案 > 如何纠正错误分类的随机森林预测?

问题描述

我已经训练了一个多类随机森林模型,所以现在如果模型预测出错误,我们会手动纠正它,所以问题是我们可以用正确的标签做什么,并让预测更好。

想法:

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

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

  3. Random FORest 比 NN 效果更好,所以不考虑那样做。

标签: machine-learningrandom-forest

解决方案


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

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

无论如何,这听起来像是您在描述一个在线学习问题(您想要一个能够根据流数据进行自我更新的模型)。你可以在网上搜索随机森林找到一些一般性的想法,例如:

  • [在线随机森林] ( http://www.ymer.org/amir/research/online-random-forests/ ) 和 [在线多类 lpboost] ( https://github.com/amirsaffari/online-multiclass-lpboost )描述一个类似于您可能想到的一般框架:模型的输入是一个新的观察流;森林通过丢弃那些表现不佳的树并最终种植包含新数据的新树来学习这些新数据。
  • 这里描述的一般思想用于许多提升算法(例如,AdaBoost通过训练后续的弱学习器将“弱学习器”的集合,例如在不同+不完整数据子集上生长的单个决策树聚合成一个更好的整体特别是以前错误分类的实例。这里的想法是,当前模型错误的那些实例对于未来的性能改进来说是最有用的信息。
  • 我不知道链接实现如何实现这一点的具体细节,尽管这个想法与您可能期望的一致。

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

总而言之,我怀疑当旧数据随着时间的推移变得过时时,在线随机森林算法之类的东西相对较好。如果不是——即如果你的未来数据和早期数据来自同一个分布——对我来说,连续重新训练你的模型并不明显(我指的是随机森林本身和任何交叉验证/模型选择程序您可能必须将森林预测转换为最终分配)您拥有的整批示例的数据是一个坏主意,非常高维特征空间中的模数据,或者非常快速的输入数据。


推荐阅读