我训练了一个逻辑回归模型 . 现在我必须用新的训练数据集更新(部分拟合)模型 . 可能吗 ?
你 cannot 在 LogisticRegression 上使用了 partial_fit .
LogisticRegression
partial_fit
但是你可以:
使用 warm_start=True ,它重用上一次调用的解决方案以适合初始化,以加速收敛 .
warm_start=True
使用 SGDClassifier 与 loss='log' 相当于 LogisticRegression ,并且支持 partial_fit .
SGDClassifier
loss='log'
注意 partial_fit 和 warm_start 之间的区别 . 两种方法都从之前的模型开始并更新它,但 partial_fit 仅略微更新模型,而 warm_start 一直在新训练数据上收敛,忘记了之前的模型 . warm_start 仅用于加速收敛 .
warm_start
另见the glossary:
warm_start在同一数据集上重复拟合估算器时,但对于多个参数值(例如在网格搜索中找到最大化性能的值),可以重用从前一个参数值中学习的模型的各个方面,从而节省时间 . 当warm_start为true时,现有的拟合模型属性a用于在后续的fit调用中初始化新模型 . 请注意,这仅适用于某些模型和某些参数,甚至适用于某些参数值的顺序 . 例如,在构建随机森林以向森林添加更多树(增加n_estimators)但不减少其数量时,可以使用warm_start . partial_fit也保留了调用之间的模型,但有所不同:使用warm_start,参数会发生变化,并且数据在(或多或少)调整之间保持不变;使用partial_fit,小批量数据更改和模型参数保持固定 . 在某些情况下,您希望使用warm_start来适应不同但密切相关的数据 . 例如,最初可以适合数据的子集,然后在完整数据集上微调参数搜索 . 对于分类,一系列warm_start调用中的所有数据必须包含来自每个类的样本 .
__
partial_fit便于以在线方式拟合估算器 . 与fit不同,重复调用partial_fit不会清除模型,而是根据提供的数据对其进行更新 . 提供给partial_fit的数据部分可以称为小批量 . 每个小批量必须具有一致的形状等.partial_fit也可以用于核外学习,尽管通常仅限于可以在线进行学习的情况,即模型在每个partial_fit之后可用且没有最终确定模型所需的单独处理 . cluster.Birch引入了这样的约定,即调用partial_fit(X)将生成一个未完成的模型,但是可以通过调用partial_fit()来确定模型,即不传递另一个小批量 . 通常,在调用partial_fit之间不应修改估计器参数,尽管partial_fit应验证它们以及新的小批量数据 . 相比之下,warm_start用于使用相同的数据重复拟合相同的估计器,但变化的参数 .
1 回答
你 cannot 在
LogisticRegression
上使用了partial_fit
.但是你可以:
使用
warm_start=True
,它重用上一次调用的解决方案以适合初始化,以加速收敛 .使用
SGDClassifier
与loss='log'
相当于LogisticRegression
,并且支持partial_fit
.注意
partial_fit
和warm_start
之间的区别 . 两种方法都从之前的模型开始并更新它,但partial_fit
仅略微更新模型,而warm_start
一直在新训练数据上收敛,忘记了之前的模型 .warm_start
仅用于加速收敛 .另见the glossary:
__