Не точно такой же код; 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