我想知道在sklearn分类器中是否有选项可以使用某些超参数进行拟合,然后在更改几个超参数后,通过保存计算(拟合)成本来重新拟合模型。
假设我们使用C=1e5
拟合逻辑回归(logreg=linear_model.LogisticRegression(C=1e5)
),然后只将C
更改为C=1e3
。因为只更改了一个参数,我希望能够节省一些计算量。
回答:
是的,有一种称为warm_start
的技术,根据文档的引用,它的意思是:
warm_start : bool, 默认值: False
当设置为True时,重复使用前一次调用fit的解决方案作为初始化,否则,只需清除前一次的解决方案。对于liblinear求解器无效。
如文档中所述,这里提到,它在LogisticRegression
中可用:
sklearn.linear_model.LogisticRegression(..., warm_start=False, n_jobs=1)
具体来说,对于你的情况,你可以这样做:
from sklearn.linear_model import LogisticRegression # 创建一个warm_start=True的LogisticRegression实例logreg = LogisticRegression(C=1e5, warm_start=True)# 你可以这样访问C参数的值logreg.C # 它被设置为100000.0# .... # 在这里通过调用logreg.fit(..)来训练你的模型# ....# 像这样重置C参数的值 logreg.C = 1e3 logreg.C # 现在它被设置为1000.0# .... # 在这里通过调用logreg.fit(..)重新训练你的模型# ....
据我快速检查,它也适用于以下情况: