Scikit learn `warm_start参数及其对计算时间的影响

Scikit learn `warm_start参数及其对计算时间的影响,scikit-learn,logistic-regression,gradient-descent,hyperparameters,Scikit Learn,Logistic Regression,Gradient Descent,Hyperparameters,我有一个定义了一组参数的模型(warm\u start=True) 和往常一样,我调用LogisticRegression.fit(X\u-train,y\u-train)并在之后使用模型预测新的结果 假设我更改了一些参数,例如,C=100,并使用相同的训练数据再次调用.fit方法 理论上,第二次,我认为.fit比warm\u start=False的模型需要更少的计算时间。然而,从经验上看,事实并非如此 请帮助我理解warm\u start参数的概念 另外:我还为一个实验实现了sgdclas

我有一个定义了一组参数的模型(
warm\u start=True

和往常一样,我调用
LogisticRegression.fit(X\u-train,y\u-train)
并在之后使用模型预测新的结果

假设我更改了一些参数,例如,
C=100
,并使用相同的训练数据再次调用
.fit
方法


理论上,第二次,我认为
.fit
warm\u start=False
的模型需要更少的计算时间。然而,从经验上看,事实并非如此

请帮助我理解
warm\u start
参数的概念

另外:我还为一个实验实现了
sgdclassizer()


我希望您理解使用上一个解决方案作为以下fit的初始化的概念,即
warm\u start=True

声明
warm\u start
参数对liblinear solver无效,因为对于特殊的线性情况没有工作实现。另外,liblinear solver是
LogisticRegression
的默认选择,这基本上意味着在每次新拟合之前,权重将完全重新实例化

要使用
warm\u start
参数并减少计算时间,您应该为
logisticReturnal
使用以下解算器之一:

  • 牛顿cglbfgs支持L2标准惩罚。它们通常在处理多分类问题时效果更好
  • sagsaga在更大的数据集上的收敛速度比liblinear SOVER更快,并在下降过程中使用多项式损失

简单例子
我希望这能有所帮助。

谢谢,@E.Z.起初,当我研究文档时,我读了它,但在实验中,我忽略了这一点。
from sklearn.linear_model import LogisticRegression

X = [[1, 2, 3], [4, 5, 6], [1, 2, 3]]
y = [1, 0, 1]

# warm_start would work fine before each new fit
clf = LogisticRegression(solver='sag', warm_start=True)

clf.fit(X, y)