我想知道在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的多数投票是否不考虑预训练的分类器集作为输入?
还是说,它会在内部重新训练基础模型?
回答:
从上面的评论中重新发布:
看起来这些模型会被重新训练:https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.VotingClassifier.html。我特别注意到了这一行:
在VotingClassifier上调用fit方法将会拟合这些原始估计器的克隆,这些克隆将被存储在类属性self.estimators_中