4

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

4

1 回答 1

8

不能使用partial_fiton LogisticRegression

但是你可以:

  • use warm_start=True,它重用之前调用 fit 作为初始化的解决方案,以加速收敛。
  • 使用SGDClassifierwith loss='log'which 等价于LogisticRegression, 并且支持partial_fit.

partial_fit注意和之间的区别warm_start。两种方法都从前一个模型开始并对其进行更新,但partial_fit只是对模型进行了轻微的更新,同时warm_start一直在新的训练数据上收敛,忘记了前一个模型。warm_start仅用于加速收敛。

另见词汇表

warm_start

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

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

partial_fit还保留调用之间的模型,但有所不同:随着warm_start参数的变化,数据在拟合的调用中(或多或少)是恒定的;随着partial_fit,小批量数据变化和模型参数保持不变。

在某些情况下,您希望使用它warm_start来适应不同但密切相关的数据。例如,最初可能适合数据的一个子集,然后在整个数据集上微调参数搜索。对于分类,warm_start调用序列中的所有数据fit必须包括来自每个类的样本。

__

partial_fit

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

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

通常,不应在调用 之间修改估计器参数partial_fit,但partial_fit应验证它们以及新的小批量数据。相反,warm_start用于重复使用相同的数据但不同的参数拟合相同的估计器。

于 2018-07-30T13:49:33.420 回答