如何更新逻辑回归模型?

我已经训练了一个逻辑回归模型。现在我需要用一组新的训练数据来更新(部分拟合)这个模型。这是可能的吗?


回答:

不能LogisticRegression上使用partial_fit

但是你可以:

  • 使用warm_start=True,它会重用上次调用fit的解决方案作为初始化,以加速收敛。
  • 使用SGDClassifier并设置loss='log',这相当于LogisticRegression,并且支持partial_fit

注意partial_fitwarm_start之间的区别。这两种方法都从之前的模型开始并更新它,但partial_fit只会稍微更新模型,而warm_start则会在新训练数据上完全收敛,忘记之前的模型。warm_start仅用于加速收敛。

另见术语表

warm_start

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

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

partial_fit也保留模型在调用之间的状态,但有所不同:使用warm_start时,参数会改变,而数据在多次调用fit时(或多或少)保持不变;使用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()(即不传递进一步的迷你批次)来完成模型。

一般来说,估计器参数在调用partial_fit之间不应被修改,尽管partial_fit也应验证它们以及新的迷你批次数据。相比之下,warm_start用于重复拟合相同估计器但使用相同数据和不同的参数。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注