sklearn VotingClassifier
objectif
Expliquer et montrer comment agréger plusieurs modèles par vote dur ou mou.
code minimal
from sklearn.datasets import make_classification
from sklearn.ensemble import VotingClassifier, RandomForestClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
X, y = make_classification(n_samples=1000, n_features=20, random_state=0)
vc = VotingClassifier(
estimators=[("lr", LogisticRegression(max_iter=1000)), ("rf", RandomForestClassifier()), ("gnb", GaussianNB())],
voting="soft"
).fit(X, y)
vc.score(X, y)
utilisation
print(vc.transform([[0]*20]).shape) # sorties intermédiaires empilées
variante(s) utile(s)
# vote dur (classes)
vd = VotingClassifier(estimators=vc.estimators, voting="hard").fit(X, y)
print(vd.score(X, y))
notes
- Le vote mou requiert predict_proba de tous les estimateurs.
- Pondérez chaque modèle via weights.