Batch gradient descent mit scikit lernen (sklearn)

Ich hab das Spiel mit einer one-vs-all Logistische Regression Klassifizierer mit Scikit-Learn (sklearn). Ich habe ein großes dataset, das ist zu langsam, alle auf einmal; auch ich möchte Studie der Lernkurve, wie die Ausbildung dauert.

Ich möchte mit batch gradient descent zu trainieren, meine Klassifizierer in Chargen von, sagen wir, 500 Proben. Gibt es eine Möglichkeit der Verwendung von sklearn um dies zu tun, oder sollte ich aufgeben sklearn und "roll meine eigene"?

Dies ist, was ich habe, so weit:

from sklearn.linear_model import LogisticRegression
from sklearn.multiclass import OneVsRestClassifier

# xs are subsets of my training data, ys are ground truth for same; I have more 
# data available for further training and cross-validation:
xs.shape, ys.shape
# => ((500, 784), (500))
lr = OneVsRestClassifier(LogisticRegression())
lr.fit(xs, ys)
lr.predict(xs[0,:])
# => [ 1.]
ys[0]
# => 1.0

I. e. er erkennt richtig eine Trainings-Stichprobe (ja, ich weiß, es wäre besser, bewerten es mit neuen Daten-dies ist nur eine schnelle Rauch-test).

R. e. batch gradient descent: ich habe nicht bekommen, so weit wie das erstellen von Lernkurven, aber kann man einfach laufen fit wiederholt auf den nachfolgenden Teilmengen der Trainingsdaten? Oder gibt es eine andere Funktion zu trainieren, die in batches? Die Dokumentation und Google sind ziemlich stumm über die Angelegenheit. Danke!

  • Ihre beste Wette vielleicht einen Blick in den source-code dieser Bibliothek.
InformationsquelleAutor JohnJ | 2013-02-23
Schreibe einen Kommentar