Как обновить модель логистической регрессии?

Я обучил модель логистической регрессии. Теперь я должен обновить (частично подогнать) модель новым набором данных тренировки. Является ли это возможным?

1 ответ

Решение

Вы не можете использовать partial_fit на LogisticRegression,

Но вы можете:

  • использование warm_start=True, которые повторно используют решение предыдущего вызова, чтобы соответствовать как инициализация, чтобы ускорить сходимость.
  • использование SGDClassifier с loss='log' что эквивалентно LogisticRegression и который поддерживает partial_fit,

Обратите внимание на разницу между partial_fit а также warm_start, Оба метода начинаются с предыдущей модели и обновляют ее, но partial_fit обновляет лишь немного модель, в то время как warm_start проходит весь путь к сближению на новых тренировочных данных, забывая предыдущую модель. warm_start используется только для ускорения конвергенции.

Смотрите также глоссарий:

warm_start

При многократной подгонке оценщика к одному и тому же набору данных, но для нескольких значений параметров (например, чтобы найти значение, максимизирующее производительность, как при поиске по сетке), может оказаться возможным повторно использовать аспекты модели, извлеченные из предыдущего значения параметра, что экономит время. когда warm_start Это правда, существующие атрибуты подогнанной модели используются для инициализации новой модели при последующем вызове fit,

Обратите внимание, что это применимо только для некоторых моделей и некоторых параметров, и даже некоторых порядков значений параметров. Например, warm_start может использоваться при построении случайных лесов, чтобы добавить больше деревьев в лес (увеличивая n_estimators) но не уменьшать их количество.

partial_fit также сохраняет модель между вызовами, но отличается: с warm_start параметры меняются и данные (более или менее) постоянны между вызовами, чтобы соответствовать; с partial_fit мини-пакет изменений данных и параметров модели остается неизменным.

Есть случаи, когда вы хотите использовать warm_start вписаться в разные, но тесно связанные данные. Например, можно изначально подогнать подмножество данных, а затем точно настроить поиск параметров по полному набору данных. Для классификации все данные в последовательности warm_start звонки в fit должны включать образцы из каждого класса.

__

partial_fit

Облегчает подгонку оценщика в режиме онлайн. В отличие от fit неоднократно звонил partial_fit не очищает модель, но обновляет ее с учетом предоставленных данных. Часть данных, предоставленных partial_fit можно назвать мини-партией. Каждая мини-партия должна быть одинаковой формы и т. Д.

partial_fit также может использоваться для неосновного обучения, хотя обычно ограничивается случаем, когда обучение может быть выполнено в режиме онлайн, то есть модель может использоваться после каждой частичной подгонки, и для завершения модели не требуется отдельной обработки. cluster.Birch вводит соглашение о том, что вызов partial_fit(X) создаст модель, которая не завершена, но модель может быть завершена путем вызова partial_fit() т.е. без прохождения дальнейшей мини-партии.

Как правило, параметры оценки не должны быть изменены между вызовами partial_fit, хотя partial_fit следует проверить их, а также новый мини-пакет данных. По сравнению, warm_start используется для многократного подбора одного и того же оценщика с теми же данными, но с разными параметрами.

Другие вопросы по тегам