Python scikit学习中的warm_start选项如何工作?

Python scikit学习中的warm_start选项如何工作?,python,scikit-learn,Python,Scikit Learn,我想在数据集上训练一个网络,然后继续训练进一步的数据。这应该可以通过scikit学习中的“warm_start”选项实现。据我所知,每次初始化时都应将权重设置为零,如果要进行多次拟合调用,则如果warm_start参数设置为True,则使用前一次拟合调用的权重作为下一次拟合的起点 然而,在实践中比较这两个选项(warm_start=True/False)会得到相同的权重结果,从而得出相同的预测结果。 唯一的区别似乎是,如果warm_start=True,则如果将权重分配给介于两者之间的变量,则权

我想在数据集上训练一个网络,然后继续训练进一步的数据。这应该可以通过scikit学习中的“warm_start”选项实现。据我所知,每次初始化时都应将权重设置为零,如果要进行多次拟合调用,则如果warm_start参数设置为True,则使用前一次拟合调用的权重作为下一次拟合的起点

然而,在实践中比较这两个选项(warm_start=True/False)会得到相同的权重结果,从而得出相同的预测结果。 唯一的区别似乎是,如果warm_start=True,则如果将权重分配给介于两者之间的变量,则权重会进行追溯更新

下面的代码用一个简单的scikit学习数据集和ElasticNet作为模型来说明这一点。权重值_1在第二次拟合后更改值,使权重值_1==权重值_2,用于warm_start=True(如上所述),而权重值_1在warm_start=False的情况下保持第一次拟合的值(在第二次运行时将warm_start设置为False以进行比较)

我是否错误地使用了warm_start参数:如果结果不取决于是否使用,那么它的应用是什么

如果暖启动根本不适合我的目的,那么是否可以通过某种方式将之前适合的重量传递到模型中?我找不到任何参数来为我感兴趣的模型(ElasticNet和MLPrePressor)设置初始系数


好吧我收到一个响应,错误地解析了运算符优先级。因此,就我而言,
warm\u start
参数在将
coef\u
变量从先前的拟合传递到坐标下降.py中所述的下一个拟合时起作用。如果需要,可以调试脚本:)。总之,当您键入
warm\u start=True
时,它实际上会将
coef\u
从上一次拟合传递到下一次拟合,并且不会引发
coef\u=np.zero((n\u目标,n\u特征),…)
。对我来说,warm\u start和partial\u-fit都不会像这里尝试的那样使数据以增量方式添加到已经训练过的模型中:。我必须在第一次使用fit()之前给出我所有的标签,这似乎与fit()相同。
X, y = load_boston(return_X_y=True)

X_1, X_2, y_1, y_2 = X[:len(X)/2], X[len(X)/2:], y[:len(y)/2], y[len(y)/2:]

model_1 = linear_model.ElasticNet(alpha = 0.01, warm_start=True)
in_weights = model_1.coef_
print 'Initialization : \nin_weights', in_weights
model_1.fit(X_1, y_1)
weights_1 = model_1.coef_
print '\nFirst fit:\n in_weights', in_weights, '\n \nweights_1 \n', weights_1
model_1.fit(X_2, y_2)
weights_2 = model_1.coef_
print '\n Second Fit: \nin_weights \n', in_weights, '\n \nweights_1 \n', weights_1, '\n \nweights_2 \n', weights_2