Source code for brew.generation.bagging

import numpy as np
from sklearn.ensemble import BaggingClassifier

from brew.base import Ensemble
from brew.combination.combiner import Combiner

from .base import PoolGenerator

[docs]class Bagging(PoolGenerator):
def __init__(self, base_classifier=None, n_classifiers=100, combination_rule='majority_vote'): self.base_classifier = base_classifier self.n_classifiers = n_classifiers # using the sklearn implementation of bagging for now self.sk_bagging = BaggingClassifier(base_estimator=base_classifier, n_estimators=n_classifiers, max_samples=1.0, max_features=1.0) self.ensemble = Ensemble() self.combiner = Combiner(rule=combination_rule) def fit(self, X, y): self.sk_bagging.fit(X, y) self.ensemble.add_classifiers(self.sk_bagging.estimators_) #self.classes_ = set(y) def predict(self, X): out = self.ensemble.output(X) return self.combiner.combine(out)