Scikit learn 如何在投票分类器(Sklearn)中调整权重

Scikit learn 如何在投票分类器(Sklearn)中调整权重,scikit-learn,prediction,ensemble-learning,Scikit Learn,Prediction,Ensemble Learning,我正在努力做到以下几点: vc = VotingClassifier(estimators=[('gbc',GradientBoostingClassifier()), ('rf',RandomForestClassifier()),('svc',SVC(probability=True))], voting='soft',n_jobs=-1) params = {'weights':[[1,2,3],

我正在努力做到以下几点:

vc = VotingClassifier(estimators=[('gbc',GradientBoostingClassifier()),
                       ('rf',RandomForestClassifier()),('svc',SVC(probability=True))],
                       voting='soft',n_jobs=-1)

params = {'weights':[[1,2,3],[2,1,3],[3,2,1]]}
grid_Search = GridSearchCV(param_grid = params, estimator=vc)
grid_Search.fit(X_new,y)
print(grid_Search.best_Score_)
在这里,我想调整参数
weights
。如果我使用
GridSearchCV
,这会花费很多时间。因为它需要为每个迭代拟合模型。我想这不是必须的。最好使用
prefit
之类的东西,在
SelectModelFrom
函数中使用
sklearn.model\u selection

有没有其他选择,或者我误解了什么?

(在我的回购协议中)会这样做


它包含一个类
VotingClassifierCV
。它首先对所有分类器进行交叉验证预测。然后对所有权重进行循环,选择最佳组合,并使用预先计算的预测。

GridSearchCV将根据提供的
cv
将数据分割为训练和测试,然后在测试数据上对其评分。由于您不想重新拟合估计器,您希望他们在哪些数据上打分:训练、测试还是所有数据?如果我进行GridSearchCV,它将为我指定的每个
权重列表创建模型。但我想要实现的是,对我给出的所有权重使用相同的模型。我想使用
prefit
,但在中没有
prefit
选项GridSeachCV@VivekKumar为了更好地解释,我编辑了问题代码。好心的,看。不,你不明白我在说什么。请查看GridSearchCV的
cv
参数。如果未指定,则使用默认的3倍cv。也就是说,2倍的数据将用于训练估计员,第三倍的数据用于评分。我想问的是,您想要获得分数的数据是什么?我建议您为此编写自定义代码。可以使用展开参数,然后相应地使用它们。