Sklearn SGDClassifier teilweise fit

Ich versuche, SGD zu verwenden, um einen großen Datensatz zu klassifizieren. Da die Daten zu groß sind, um in den Speicher zu passen, möchte ich die verwendenTeil_Fit Methode zum Trainieren des Klassifikators. Ich habe eine Stichprobe des Datensatzes (100.000 Zeilen) ausgewählt, die zum Testen in den Arbeitsspeicher passtpassen gegenTeil_Fit:

from sklearn.linear_model import SGDClassifier

def batches(l, n):
    for i in xrange(0, len(l), n):
        yield l[i:i+n]

clf1 = SGDClassifier(shuffle=True, loss='log')
clf1.fit(X, Y)

clf2 = SGDClassifier(shuffle=True, loss='log')
n_iter = 60
for n in range(n_iter):
    for batch in batches(range(len(X)), 10000):
        clf2.partial_fit(X[batch[0]:batch[-1]+1], Y[batch[0]:batch[-1]+1], classes=numpy.unique(Y))

Ich teste dann beide Klassifikatoren mit einem identischen Testsatz. Im ersten Fall erhalte ich eine Genauigkeit von 100%. Wie ich es verstehe, geht SGD standardmäßig 5 Mal über die Trainingsdaten (n_iter = 5).

Im zweiten Fall muss ich 60-mal über die Daten gehen, um die gleiche Genauigkeit zu erreichen.

Warum dieser Unterschied (5 vs. 60)? Oder mache ich etwas falsch?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage