Я посмотрел на VotingClassifier из моего понимания, что функция принимает набор классификаторов, в то время как в вашем случае вы предоставляете список точности. Пример кода можно найти в документации по sklearn (https://scikit -learn.org / stable / modules / generate / sklearn.ensemble.VotingClassifier.html )
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
from sklearn.ensemble import RandomForestClassifier, VotingClassifier
clf1 = LogisticRegression(solver='lbfgs', multi_class='multinomial',random_state=1)
clf2 = RandomForestClassifier(n_estimators=50, random_state=1)
clf3 = GaussianNB()
X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
y = np.array([1, 1, 1, 2, 2, 2])
eclf1 = VotingClassifier(estimators=[('lr', clf1), ('rf', clf2), ('gnb', clf3)], voting='hard')
eclf1 = eclf1.fit(X, y)
print(eclf1.predict(X))
#[1 1 1 2 2 2]
np.array_equal(eclf1.named_estimators_.lr.predict(X), eclf1.named_estimators_['lr'].predict(X))
#True
eclf2 = VotingClassifier(estimators=[ ('lr', clf1), ('rf', clf2), ('gnb', clf3)], voting='soft')
eclf2 = eclf2.fit(X, y)
print(eclf2.predict(X))
#[1 1 1 2 2 2]
eclf3 = VotingClassifier(estimators=[ ('lr', clf1), ('rf', clf2), ('gnb', clf3)], voting='soft', weights=[2,1,1], flatten_transform=True)
eclf3 = eclf3.fit(X, y)
print(eclf3.predict(X))
#[1 1 1 2 2 2]
print(eclf3.transform(X).shape)
#(6, 6)
EDIT
Так что я не думаю, что функция VotingClassifier - верный путь для решения вашей задачи.
Что вам нужно сделать, так это собрать все y_predict из вашего цикла for.
Это даст вам прогноз для каждого образца.
раз, что для каждой выборки (например, ) у вас есть все прогнозы (например, ), которые вы можете вычислить при голосовании. Результатом будет окончательная метка прогноза ( = Голосование ()).
Точность дается при сравнении меток, предсказанных на основе голосования, с основополагающей правдой.