gpt4 book ai didi

python - 部分拟合和热启动有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 17:35:07 25 4
gpt4 key购买 nike

上下文:

我正在使用 scikit 库中的 Passive Aggressor,不知道是使用热启动还是部分拟合。

迄今为止的努力:

  1. 引用了这个话题讨论:

https://github.com/scikit-learn/scikit-learn/issues/1585

  1. 浏览了 _fit_partial_fit 的 scikit 代码。

我的观察:

  1. _fit 依次调用 _partial_fit

  2. 设置 warm_start 后,_fit 调用 _partial_fit self.coef_

  3. 当调用 _partial_fit 时没有 coef_init 参数和 self。 coef_ 已设置,它继续使用 self.coef_

问题:

我觉得两者最终都提供相同的功能。那么,它们之间的基本区别是什么?在哪些情况下使用它们中的任何一个?

我是否遗漏了一些明显的东西?任何帮助表示赞赏!

最佳答案

我不知道 Passive Aggressor,但至少在使用 SGDRegressor 时是这样。 , partial_fit 将只适合 1 个 epoch,而 fit 将适合多个 epoch(直到损失收敛或 max_iter到达了)。因此,当将新数据拟合到您的模型时,partial_fit 只会将模型校正到新数据的一步,但是使用 fitwarm_start 时就像您将旧数据和新数据组合在一起并拟合模型一次直到收敛一样。

例子:

from sklearn.linear_model import SGDRegressor
import numpy as np

np.random.seed(0)
X = np.linspace(-1, 1, num=50).reshape(-1, 1)
Y = (X * 1.5 + 2).reshape(50,)

modelFit = SGDRegressor(learning_rate="adaptive", eta0=0.01, random_state=0, verbose=1,
shuffle=True, max_iter=2000, tol=1e-3, warm_start=True)
modelPartialFit = SGDRegressor(learning_rate="adaptive", eta0=0.01, random_state=0, verbose=1,
shuffle=True, max_iter=2000, tol=1e-3, warm_start=False)
# first fit some data
modelFit.fit(X, Y)
modelPartialFit.fit(X, Y)
# for both: Convergence after 50 epochs, Norm: 1.46, NNZs: 1, Bias: 2.000027, T: 2500, Avg. loss: 0.000237
print(modelFit.coef_, modelPartialFit.coef_) # for both: [1.46303288]

# now fit new data (zeros)
newX = X
newY = 0 * Y

# fits only for 1 epoch, Norm: 1.23, NNZs: 1, Bias: 1.208630, T: 50, Avg. loss: 1.595492:
modelPartialFit.partial_fit(newX, newY)

# Convergence after 49 epochs, Norm: 0.04, NNZs: 1, Bias: 0.000077, T: 2450, Avg. loss: 0.000313:
modelFit.fit(newX, newY)

print(modelFit.coef_, modelPartialFit.coef_) # [0.04245779] vs. [1.22919864]
newX = np.reshape([2], (-1, 1))
print(modelFit.predict(newX), modelPartialFit.predict(newX)) # [0.08499296] vs. [3.66702685]

关于python - 部分拟合和热启动有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38052342/

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