Переподготовка существующей модели машинного обучения новыми данными - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть модель ML, которая обучается на наборе миллионов данных (контролируемая классификация по тексту), однако я хочу, чтобы та же модель снова прошла обучение, как только появится новый набор данных (обучениеdata). Этот процесс является непрерывным, и я не хочу потерять мощность прогноза модели каждый раз, когда она получает новый набор данных.Я хочу объединить новые данные с моими историческими данными (1 миллион данных) для повторного обучения. Намерение - я хочу, чтобы эта модель постепенно росла, видя все новые данные, установленные в течение определенного периода времени, таким образом сохраняя интеллект модели при каждом полученииновый учебный набор данных. Каков наилучший питонный способ его достижения, чтобы избегать переподготовки исторических данных ?Пример кода поможет мне.

1 Ответ

0 голосов
/ 29 ноября 2018

Вы хотите взглянуть на Онлайн обучение техники для этого.Многие алгоритмы scikit-learn имеют возможность делать partial_fit данных, что означает, что вы можете постепенно обучаться на небольших пакетах данных.

Распространенный подход к проблемам онлайн-обучениядолжен использовать SGDClassifier, который обучается путем взятия доли выборок для обновления параметров модели на каждой итерации, что делает ее естественным кандидатом на решение задач онлайн-обучения.Тем не менее, модель все равно должна пройти обучение по методу partial_fit, в противном случае она будет переучивать всю модель.

Из документации :

SGD позволяетминиатюрное (онлайн / внешнее) обучение, см. метод part_fit

Вот игрушечный пример, иллюстрирующий идею:

clf = linear_model.SGDClassifier()
clf.partial_fit(x,y)
x_new = new_data
y_new = new_labels
clf.partial_fit(x_new ,y_new)
...