我已经训练了逻辑回归模型。现在,我必须使用一组新的训练数据来更新(部分拟合)模型。有可能吗?
答案 0 :(得分:5)
您不能在partial_fit
上使用LogisticRegression
。
但是您可以:
warm_start=True
,它重用上一个调用的解决方案以适合初始化,以加快收敛速度。SGDClassifier
与loss='log'
一起使用,它等效于LogisticRegression
,并且支持partial_fit
。请注意partial_fit
和warm_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
用于将具有相同数据但参数变化的同一估计量重复拟合。