Я играю с классификатором регрессионной регрессионной логики с одним-против всех, используя Scikit-Learn (sklearn). У меня есть большой набор данных, который слишком медленный, чтобы запускать все за один раз; также я хотел бы изучить кривую обучения по мере продолжения обучения.Пакетный градиентный спуск с scikit learn (sklearn)
Я хотел бы использовать групповой градиентный спуск для обучения моего классификатора партиями, скажем, 500 образцов. Есть ли способ использовать sklearn для этого, или я должен отказаться от sklearn и «сворачивать свои собственные»?
Это то, что я до сих пор:
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
Т.е. он правильно идентифицирует образец обучения (да, я понимаю, что было бы лучше оценить его с новыми данными - это просто быстрый тест на дым).
R.e. групповой градиентный спуск: я дошел до создания кривых обучения, но можно ли просто повторно запустить fit
на последующих подмножествах данных обучения? Или есть какая-то другая функция для тренировки партиями? Документация и Google довольно молчали по этому вопросу. Благодаря!
Лучше всего, если вы посмотрите на исходный код этой библиотеки. – Arcturus