在同一个模型上多次调用fit()有什么作用?

2024-04-25 05:01:53 发布

您现在位置:Python中文网/ 问答频道 /正文

在我实例化一个scikit模型(例如LinearRegression)之后,如果我多次调用它的fit()方法(使用不同的Xy数据),会发生什么?它是否与数据匹配,就像我只是重新实例化了模型(即从头开始)一样,还是将上次调用fit()时已经匹配的数据保存到帐户中?

尝试使用LinearRegression(同时查看它的源代码)在我看来,每次调用fit()时,它都是从头开始的,忽略了以前对同一方法的任何调用的结果。我想知道这是否在一般情况下是真的,我可以依赖于scikit学习的所有模型/管道的这种行为。


Tags: 数据实例方法模型管道源代码情况帐户
2条回答

如果您将第二次执行model.fit(X_train, y_train),它将覆盖所有先前拟合的系数、权重、截距(偏差)等

如果您只想适应数据集的一部分,然后通过适应新数据来改进模型,那么您可以使用estimators, supporting "Incremental learning" (those, that implement ^{} method)

您可以在机器学习中交替使用术语fit()train()单词。基于您已经实例化的分类模型,可能是clf = GBNaiveBayes()clf = SVC(),您的模型使用指定的机器学习技术。
一旦你调用clf.fit(features_train, label_train)你的模型就开始使用你已经通过的特性和标签进行训练。

你可以用clf.predict(features_test)来预测 如果您再次调用clf.fit(features_train2, label_train2),它将使用传递的数据再次开始训练,并删除以前的结果。您的模型将重置以下内部模型:

  • 重量
  • 拟合系数
  • 偏倚
  • 以及其他与训练相关的东西。。。

如果希望保留以前计算的内容并使用下一个数据进行额外的训练,也可以使用partial_fit()方法

相关问题 更多 >