gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 01:53:55 31 4
gpt4 key购买 nike

我有一个logistic regression具有一组已定义参数的模型 (warm_start=True)。

一如既往,我调用 LogisticRegression.fit(X_train, y_train) 并使用之后的模型来预测新结果。

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

<小时/>

理论上,我第二次认为与 warm_start=False 的模型相比,.fit 应该花费更少的计算时间。然而,根据经验来看,事实并非如此。

请帮助我理解 warm_start 参数的概念。

P.S.: I have also implemented SGDClassifier() for an experimentation.

最佳答案

我希望您理解使用之前的解决方案作为以下与 warm_start=True 配合的初始化的概念。

Documentation指出 warm_start 参数对于 liblinear 求解器毫无用处,因为对于特殊的线性情况没有有效的实现。要补充的是,liblinear 求解器是 LogisticRegression 的默认选择,这基本上意味着权重将在每次新拟合之前完全重新实例化。

要利用 warm_start 参数并减少计算时间,您应该为 LogisticRegression 使用以下求解器之一:

  • newton-cglbfgs 支持 L2 范数惩罚。他们通常也能更好地解决多分类问题;
  • sagsaga 在更大的数据集上收敛速度比 liblinear 求解器更快,并且在下降过程中使用多项式损失。
<小时/>

简单示例

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)

希望对您有所帮助。

关于scikit-learn - `warm_start` 参数及其对计算时间的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45651096/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com