奇怪的是,它似乎是完全相同的适合和partial_fit的代码。
您可以在以下链接中看到代码:
https://github.com/scikit-learn/scikit-learn/blob/c957249/sklearn/decomposition/online_lda.py#L478
不完全相同的代码; 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
方法的所有样品。即使您这样做正确,您也可能得到不同的结果,如文档中所述:
- "增量学习者本身可能无法应对新的/看不见的目标类。在这种情况下,您必须使用 classes= 参数将所有可能的类传递给第一个partial_fit调用。
- "[...]选择一个合适的算法是,随着时间的推移,它们对每个示例的重视程度并不相同[...]">
SKlearn文档:https://scikit-learn.org/0.15/modules/scaling_strategies.html#incremental-learning