如何更新逻辑回归模型?

时间:2018-07-30 13:32:34

标签: machine-learning scikit-learn logistic-regression machine-learning-model

我已经训练了逻辑回归模型。现在,我必须使用一组新的训练数据来更新(部分拟合)模型。有可能吗?

1 个答案:

答案 0 :(得分:5)

不能partial_fit上使用LogisticRegression

但是您可以:

  • 使用warm_start=True,它重用上一个调用的解决方案以适合初始化,以加快收敛速度​​。
  • SGDClassifierloss='log'一起使用,它等效于LogisticRegression,并且支持partial_fit

请注意partial_fitwarm_start之间的区别。两种方法都从先前的模型开始并进行更新,但是partial_fit仅对模型进行了少许更新,而warm_start一直在新训练数据上进行收敛,而忘记了先前的模型。 warm_start仅用于加速收敛。

另请参阅the glossary

  

warm_start

     

在同一数据集上反复拟合估算器时,但对于多个参数值(例如在网格搜索中找到使性能最大化的值),可以重用从先前参数值中学到的模型的各个方面,节约时间。当warm_start为true时,现有的拟合模型属性an用于在随后对fit的调用中初始化新模型。

     

请注意,这仅适用于某些模型和某些参数,甚至某些数量的参数值。例如,在构建随机森林时可以使用warm_start,以向森林中添加更多树(增加n_estimators),但不减少其数量。

     

partial_fit也保留了两次调用之间的模型,但有所不同:对于warm_start,参数会发生变化,并且在每次调用之间数据(或多或少)是常数,以适应;使用partial_fit,数据更改和模型参数的最小批量保持固定。

     

在某些情况下,您想使用warm_start来适应不同但密切相关的数据。例如,最初可能适合数据的一个子集,然后对整个数据集上的参数搜索进行微调。为了进行分类,在warm_start的{​​{1}}调用序列中的所有数据都必须包括每个类的样本。

__

  

fit

     

便于以在线方式拟合估算器。与partial_fit不同,重复调用fit不会清除模型,而是会针对提供的数据进行更新。提供给partial_fit的数据部分可以称为迷你批处理。每个小批量产品必须具有一致的形状,等等。

     

partial_fit也可以用于核心学习,尽管通常限于可以在线进行学习的情况,即模型在每次partial_fit之后都可用,并且不需要单独的处理来完成该模型。 partial_fit引入了一种约定,即调用cluster.Birch会生成未定型的模型,但是可以通过调用partial_fit(X)来定型该模型,即无需传递进一步的小批量批处理。

     

通常,不应partial_fit()进行两次调用之间修改估计器参数,尽管partial_fit应该对它们以及新的微型数据进行验证。相比之下,partial_fit用于将具有相同数据但参数变化的同一估计量重复拟合。