SkLearn SGDR除法器中partial_fit中的批次大小和时期数量



我正在努力了解实现partial_fit的方法。我用make_regression创建了一个伪数据集。此外,我用partial_fit方法对X和y进行了局部拟合。你能告诉我在哪里提到批量大小和划时代的数量吗?

例如,如果我想使用2000条记录和10个时期的批量大小来在整个数据集上以增量方式训练模型。

from sklearn.datasets import make_regression
from sklearn.linear_model import SGDRegressor

X,y=make_regression(n_samples=20000, n_features=5, random_state=0, noise=4.0,bias=100.0)

reg=SGDRegressor(max_iter=1000)
reg.partial_fit(X,y)
print(reg.score(X,y))

您只需将迷你批次的功能和标签以与使用fit:相同的方式传递给partial_fit

reg.partial_fit(X_minibatch, y_minibatch)

下面是一段代码,用于展示如何做到:

from sklearn.linear_model import SGDRegressor

def iter_minibatches(chunksize):
# Provide chunks one by one
chunkstartmarker = 0
while chunkstartmarker < numtrainingpoints:
chunkrows = range(chunkstartmarker,chunkstartmarker+chunksize)
X_chunk, y_chunk = getrows(chunkrows)
yield X_chunk, y_chunk
chunkstartmarker += chunksize

def main():
batcherator = iter_minibatches(chunksize=1000)
model = SGDRegressor()

for X_chunk, y_chunk in batcherator:
model.partial_fit(X_chunk, y_chunk)

y_predicted = model.predict(X_test)

最新更新