Scikit learn 为什么在训练SGDClassizer时会重置Epoch?

Scikit learn 为什么在训练SGDClassizer时会重置Epoch?,scikit-learn,Scikit Learn,我对一个时代的理解是,它是指我们在整个训练过程中经历的次数。但是当我用verbose=true训练sgdclassizer时,我看到了下面的内容。它只是在5个纪元后重置,并再次从1开始计数。为什么会这样 以下是我如何实例化模型: clf = linear_model.SGDClassifier(loss='log', verbose=True) clf.fit(X_train, y_train) 以下是输出: -- Epoch 1 Norm: 5.26, NNZs: 448659, Bias:

我对一个时代的理解是,它是指我们在整个训练过程中经历的次数。但是当我用verbose=true训练sgdclassizer时,我看到了下面的内容。它只是在5个纪元后重置,并再次从1开始计数。为什么会这样

以下是我如何实例化模型:

clf = linear_model.SGDClassifier(loss='log', verbose=True)
clf.fit(X_train, y_train)
以下是输出:

-- Epoch 1
Norm: 5.26, NNZs: 448659, Bias: -5.164052, T: 1912007, Avg. loss: 0.005248
Total training time: 0.91 seconds.
-- Epoch 2
Norm: 5.13, NNZs: 448659, Bias: -5.286860, T: 3824014, Avg. loss: 0.004764
Total training time: 1.72 seconds.
-- Epoch 3
Norm: 5.07, NNZs: 448659, Bias: -5.353568, T: 5736021, Avg. loss: 0.004655
Total training time: 2.57 seconds.
-- Epoch 4
Norm: 5.03, NNZs: 448659, Bias: -5.398900, T: 7648028, Avg. loss: 0.004587
Total training time: 3.41 seconds.
-- Epoch 5
Norm: 5.00, NNZs: 448659, Bias: -5.432728, T: 9560035, Avg. loss: 0.004547
Total training time: 4.28 seconds.
-- Epoch 1
Norm: 5.33, NNZs: 448659, Bias: -5.161117, T: 1912007, Avg. loss: 0.009731
Total training time: 0.98 seconds.
-- Epoch 2
Norm: 5.23, NNZs: 448659, Bias: -5.276683, T: 3824014, Avg. loss: 0.009210
Total training time: 1.84 seconds.

这是因为在多类问题中实施了一对一策略

从:

SGDClassizer通过组合支持多类分类 “一对所有”(OVA)方案中的多个二进制分类器。对于 每个K类中,一个二进制分类器被学习到 区分该类和所有其他K-1类

这意味着,如果您的数据有4个不同的类,那么将对模型的4个不同实例进行训练,因此每个模型将打印其纪元数

默认的历元数(
max_iter
param)为5。因此,每个实例都将打印到这些多个时代

在一个简单的二元分类任务中,只训练一个模型,因此详细的输出将只包含一次对时代的提及


希望您现在能理解。

请提供一些代码。我已将问题更新为包含代码。我使用的是一个非常通用的设置,所以没有比这更多的了。