Какие модели можно обучать на новых данных?

Какие модели можно обучать на новых данных? Какие нельзя? Почему?

Как я понимаю, если мы обучаем модель градиентным спуском, то мы можем использовать дообученение


Ответы (1 шт):

Автор решения: CrazyElf

С инженерной точки зрения, дообучать можно те модели, которые поддерживают инкрементальное обучение, в библиотеке Sklearn это проверяется наличием метода partial_fit. Список таких моделей из документации по Sklearn:

Classification

  • sklearn.naive_bayes.MultinomialNB
  • sklearn.naive_bayes.BernoulliNB
  • sklearn.linear_model.Perceptron
  • sklearn.linear_model.SGDClassifier
  • sklearn.linear_model.PassiveAggressiveClassifier

Regression

  • sklearn.linear_model.SGDRegressor
  • sklearn.linear_model.PassiveAggressiveRegressor

Clustering

  • sklearn.cluster.MiniBatchKMeans

Decomposition / feature Extraction

  • sklearn.decomposition.MiniBatchDictionaryLearning
  • sklearn.cluster.MiniBatchKMeans

Насколько я помню, популярные бустинги XGBoost и LightGBM тоже поддерживают дообучение.

Что же касается именно теории, то там глубже нужно копать, но на первый взгляд по идее ничего не мешает дообучить градиентный спуск, бустинги и нейросети - они ведь по сути своих алгоритмов постепенно доучиваются и могут это делать и на новых данных, почему бы и нет. Только почему можно дообучать Naive Bayes я не в курсе - я не настолько хорошо его понимаю.

А вот с решающими деревьями, линейной регрессией, SVM и т.п. такой фокус не прокатит, там по самой сути моделей обучать их нужно на всех данных, непонятно, как их можно было бы дообучить. Они как бы "усредняют" данные, чтобы найти решение, поэтому как в них учесть дополнительные данные, не обрабатывая заново основные данные наравне с новыми - не очень понятно.

→ Ссылка