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