2016-02-12 5 views

ответ

5

Не точно такой же код; partial_fit использует total_samples:

" total_samples:. ИНТ, необязательный (по умолчанию = 1E6) Общее количество документов, которые используются только в методе partial_fit."

https://github.com/scikit-learn/scikit-learn/blob/c957249/sklearn/decomposition/online_lda.py#L184

(частичное подходит) https://github.com/scikit-learn/scikit-learn/blob/c957249/sklearn/decomposition/online_lda.py#L472

(подходит) https://github.com/scikit-learn/scikit-learn/blob/c957249/sklearn/decomposition/online_lda.py#L510

Только в случае вашего интереса: partial_fit является хорошим кандидатом для использования, когда ваш набор данных действительно действительно большой. Итак, вместо того, чтобы запускать возможные проблемы с памятью , вы выполняете фитинг в меньших партиях, который называется инкрементальным обучением.

Итак, в вашем случае вы должны принять во внимание, что значение total_samples по умолчанию - 1000000.0. Поэтому, если вы не измените этот номер, и ваше реальное количество образцов больше, вы получите разные результаты от метода fit и fit_partial. Или, может быть, это может быть случай, когда вы используете мини-партии в fit_partial и не покрываете все образцы, которые вы предоставляете методу fit. И даже если вы сделаете это правильно, вы можете также получить различные результаты, как указано в документации:.

  • «сам инкрементный обучающийся может быть не в состоянии справиться с классами новых/невидимые цели в этом случае вы должны передать все возможные классы первому вызову partial_fit, используя параметр classes =. "
  • «[...] выбор правильного алгоритма является то, что все они не ставят такое же значение на каждом примере с течением времени [...]»

sklearn документация: http://scikit-learn.org/stable/modules/scaling_strategies.html#incremental-learning

Смежные вопросы