【问题标题】:Does the training of majority voting in scikit-learn will re-train the classifiers?scikit-learn 中多数投票的训练会重新训练分类器吗?
【发布时间】:2021-04-19 02:29:32
【问题描述】:

我很好奇 scikit-learn 中的多数投票训练是否会 重新训练分类器?

例如:

model_perceptron = CalibratedClassifierCV(Perceptron(max_iter=100,
                                                     random_state=rng),
                                          cv=3)

model_perceptron.fit(X_train, y_train)
model_svc = SVC(probability=True, gamma='auto',
                random_state=rng).fit(X_train, y_train)
model_bayes = GaussianNB().fit(X_train, y_train)
model_tree = DecisionTreeClassifier(random_state=rng).fit(X_train, y_train)
model_knn = KNeighborsClassifier(n_neighbors=1).fit(X_train, y_train)

voting_classifiers = [("perceptron", model_perceptron),
                      ("svc", model_svc),
                      ("bayes", model_bayes),
                      ("tree", model_tree),
                      ("knn", model_knn)]

model_voting = VotingClassifier(estimators=voting_classifiers).fit(
    X_train, y_train)

我已经训练了所有这些基础模型。

scikit-learn 是否仅使用我之前独立训练和测试过的已训练分类器? scikit-learn 的多数投票是否不考虑 预训练的分类器集作为输入?

或者,它会重新训练内部的基本模型吗?

【问题讨论】:

  • 模型似乎被重新训练:scikit-learn.org/stable/modules/generated/…。特别是这一行:“在 VotingClassifier 上调用 fit 方法将拟合将存储在类属性 self.estimators_ 中的那些原始估计器的克隆”
  • @jhso 确实如此;请将此作为答案发布,包括链接文档中的引用
  • @jhso 谢谢。您可以将其发布为答案,以便任何搜索的人都可以找到答案吗?

标签: python machine-learning scikit-learn


【解决方案1】:

转自上述cmets:

似乎模型已重新训练:https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.VotingClassifier.html。我特别注意到这一行:

在 VotingClassifier 上调用 fit 方法将拟合 那些将存储在类属性中的原始估计器 self.estimators_

【讨论】:

  • 那么,如果我们测量计算时间,它已经包括了所有基估计器的训练?
  • 如果没有自己测试,我会这么说。时间与自己做相比如何?应该有点可比性。
猜你喜欢
  • 2022-01-05
  • 2023-04-09
  • 2013-07-04
  • 2014-09-17
  • 2016-11-26
  • 1970-01-01
  • 2020-01-04
  • 2015-06-08
  • 2019-04-10
相关资源
最近更新 更多