2016-02-12 7 views

risposta

5
Non

esattamente lo stesso codice; partial_fit utilizza total_samples:

" total_samples:. Int., Optional (default = 1E6) Numero totale di documenti Solo utilizzati nel metodo partial_fit"

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

(in forma parziale) https://github.com/scikit-learn/scikit-learn/blob/c957249/sklearn/decomposition/online_lda.py#L472

(fit) https://github.com/scikit-learn/scikit-learn/blob/c957249/sklearn/decomposition/online_lda.py#L510

Solo nel caso si tratta di tuo interesse: partial_fit è un buon candidato per essere utilizzato ogni volta che il set di dati è davvero molto grande Quindi, invece di incorrere in possibili problemi di memoria , esegui il montaggio in lotti più piccoli, che è chiamato apprendimento incrementale.

Quindi, nel tuo caso dovresti prendere in considerazione che il valore predefinito di total_samples è 1000000.0. Pertanto, se non si modifica questo numero e il numero reale di campioni è maggiore, si otterranno risultati diversi dal metodo fit e fit_partial. O forse potrebbe essere il caso che stai usando mini-batch nel fit_partial e non coprendo tutti gli esempi che fornisci al metodo fit. E anche se si fa questo diritto, si potrebbe anche ottenere risultati diversi, come indicato nella documentazione:.

  • "lo studente incrementale stessa può non essere in grado di far fronte con le classi nuove/bersagli invisibili In questo caso si deve passa tutte le possibili classi alla prima chiamata partial_fit usando il parametro classes =. "
  • "[...] la scelta di un algoritmo corretto è che tutti loro non mettere la stessa importanza ad ogni esempio nel corso del tempo [...]" documentazione

sklearn: http://scikit-learn.org/stable/modules/scaling_strategies.html#incremental-learning

Problemi correlati