我在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_start
和partial_fit
,何时决定使用哪个?
答案 0 :(得分:0)
当 warm_start=True
时,.fit()
函数将在进行 coef_
之前在回归器中获取最优的 intercept_
和 partial_fit
。