需要通过示例简单说明warm_start v / s parial_fit

时间:2018-09-17 08:38:27

标签: python machine-learning scikit-learn

我在the sklearn docs上读过

  

在同一数据集上反复拟合估计量时,   多个参数值(例如查找最大化的值)   性能(如网格搜索),则有可能重用   从先前的参数值中学习的模型,节省了时间。什么时候   warm_start为true,将使用现有的拟合模型属性   在随后的拟合中初始化新模型。

     

请注意,这仅适用于某些型号和某些参数,   甚至一些参数值的顺序。例如,warm_start可能   在建立随机森林以向森林中添加更多树木时使用   (增加n_estimators),但不减少其数量。

     

partial_fit还会在调用之间保留模型,但有所不同:with   warm_start参数更改,并且数据(或多或少)   在通话中保持一致;使用partial_fit,数据的迷你批处理   变化和模型参数保持不变。

     

在某些情况下,您想使用warm_start来适应不同的情况,   但密切相关的数据。例如,最初可能适合   数据的子集,然后对整个参数搜索进行微调   数据集。为了进行分类,按warm_start序列中的所有数据   合适的通话必须包含每个班级的样本。

我已经编写了这段代码:

warm_start

clf = LogisticRegression(warm_start = True)
clf.fit(X_train_increment_1, y_train_increment_1)
clf.fit(X_train_increment_2, y_train_increment_2)

准确性= 75%

partial_fit

clf = SGDClassifier()
clf.partial_fit(X_train_increment_1, y_train_increment_1)
clf.partial_fit(X_train_increment_2, y_train_increment_2)

准确性= 74%

我想知道sklearn在内部如何使用warm_startpartial_fit,何时决定使用哪个?

1 个答案:

答案 0 :(得分:0)

warm_start=True 时,.fit() 函数将在进行 coef_ 之前在回归器中获取最优的 intercept_partial_fit