Так как вы не упомянули цель этого. Почему именно вы хотите перебирать различные модели scikit-learn?
Если вы пытаетесь выяснить, какая из вышеперечисленных моделей лучше подходит и превосходит, вы можете использовать что-то вроде этого
# -------- Cross validate model with Kfold stratified cross val ---------------
kfold = StratifiedKFold(n_splits=10)
# Modeling step Test differents algorithms
classifiers = ['AdaBoostClassifier',
'BernoulliNB',
'DummyClassifier']
results = []
for model in classifiers :
results.append(cross_val_score(model, X_train, y = y_train, scoring = "accuracy", cv = kfold, n_jobs=4))
cv_means = []
cv_std = []
for cv_result in results:
cv_means.append(cv_result.mean())
cv_std.append(cv_result.std())
cv_res = pd.DataFrame({"CrossValMeans":cv_means,"CrossValerrors": cv_std,"Algorithm":["AdaBoostClassifier","BernoulliNB","DummyClassifier"]})`
Если вы пытаетесь объединить эти
Обучите их отдельно и используйте HyperParams, чтобы найти лучший оценщик для модели, а затем используйте Классификатор голосования как:
DTC = DecisionTreeClassifier()
ADB = AdaBoostClassifier(DTC)
ada_param_grid = { # Params here }
gsABC = GridSearchCV(ADB,param_grid = ada_param_grid , cv=kfold, scoring="accuracy", n_jobs= 4, verbose = 1)
AdaBoost_best =gsABC.best_estimator_
# Likewise you can do for others and then perform Voting
votingC = VotingClassifier(estimators=[('ada', AdaBoost_best), ('nb', BernoulliNB_best),
('dc', DummyClassifier_best)], voting='soft', n_jobs=4)
votingC = votingC.fit(X_train, Y_train)