【发布时间】:2018-08-22 01:48:00
【问题描述】:
训练模型时,结果取决于抽样。为了获得更好的结果,您可以重复训练(在另一个随机创建的训练样本中,使用Ffolds、StratifiedKFold ...),以某种方式汇总结果并以这种方式获得比创建的更稳健的结果仅在特定情况下。 问题:它是否已经在 sklearn 或类似中实现?。抱歉,这是一个直截了当的问题,我还没有看到一个简单的解决方案。
我看到有一个名为 cross_val_predict 的函数,但是我快速浏览源代码的第一印象是它预测的次数与火车一样多,我只想预测火车,所以我可以选择,以某种方式汇总结果,然后再进行预测,而不是再次重复整个训练过程。
【问题讨论】:
-
我认为你混淆了一些概念,可能需要做一些阅读。你用的是什么型号?如果您的训练模型依赖于训练/测试拆分(您可以使用交叉验证来识别),那么您过度拟合并且需要调整您的超参数以避免这种情况。作为一种替代策略:sklearn 中是否有一些东西可以聚合过度拟合的分类器以产生更健壮的分类器?是的,它被称为随机森林!
-
您的正确集成方法做得很好。非常感谢!
-
没问题。一旦你尽可能地推动了随机森林,你也许可以使用你在笔记本中学到的知识来创建你自己的集成分类器。例如,训练 RF、朴素贝叶斯和逻辑回归模型,然后设计一种集成结果的方法。例如,您可以为您的特征和 3 个 predict.proba() 结果拟合 2 级分类器(log.reg.)。
标签: python-3.x scikit-learn cross-validation