我已经训练了一个逻辑回归模型。现在我必须用新的训练数据集更新(部分拟合)模型。可能吗 ?
1 回答
你不能使用partial_fit
on LogisticRegression
。
但是你可以:
- use
warm_start=True
,它重用之前调用 fit 作为初始化的解决方案,以加速收敛。 - 使用
SGDClassifier
withloss='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
用于重复使用相同的数据但不同的参数拟合相同的估计器。