当我实例化一个scikit模型(例如LinearRegression
)后,如果我多次调用它的fit()
方法(使用不同的X
和y
数据),会发生什么?它是像重新实例化模型(即从头开始)那样来拟合数据,还是会考虑之前调用fit()
时已经拟合的数据?
通过LinearRegression
进行尝试(同时查看其源代码),我发现每次调用fit()
时,它都是从头开始拟合的,忽略了之前对同一方法的任何调用结果。我想知道这是否是一般的规律,我是否可以依赖这种行为来处理scikit-learn的所有模型/管道。
回答:
如果你第二次执行model.fit(X_train, y_train)
,它会覆盖之前拟合的所有系数、权重、截距(偏置)等。
如果你想先拟合数据集的一部分,然后通过拟合新数据来改进你的模型,那么你可以使用支持“增量学习”的估计器(那些实现了partial_fit()
方法的估计器)。