Skip to content

LeveragingBaggingClassifier

Leveraging Bagging ensemble classifier.

Leveraging Bagging [^1] is an improvement over the Oza Bagging algorithm. The bagging performance is leveraged by increasing the re-sampling. It uses a poisson distribution to simulate the re-sampling process. To increase re-sampling it uses a higher w value of the Poisson distribution (agerage number of events), 6 by default, increasing the input space diversity, by attributing a different range of weights to the data samples.

To deal with concept drift, Leveraging Bagging uses the ADWIN algorithm to monitor the performance of each member of the enemble If concept drift is detected, the worst member of the ensemble (based on the error estimation by ADWIN) is replaced by a new (empty) classifier.

Parameters

  • model

    Typebase.Classifier

    The classifier to bag.

  • n_models

    Typeint

    Default10

    The number of models in the ensemble.

  • w

    Typefloat

    Default6

    Indicates the average number of events. This is the lambda parameter of the Poisson distribution used to compute the re-sampling weight.

  • adwin_delta

    Typefloat

    Default0.002

    The delta parameter for the ADWIN change detector.

  • bagging_method

    Typestr

    Defaultbag

    The bagging method to use. Can be one of the following:
    * 'bag' - Leveraging Bagging using ADWIN.
    * 'me' - Assigns \(weight=1\) if sample is misclassified, otherwise \(weight=error/(1-error)\).
    * 'half' - Use resampling without replacement for half of the instances.
    * 'wt' - Resample without taking out all instances.
    * 'subag' - Resampling without replacement.

  • seed

    Typeint | None

    DefaultNone

    Random number generator seed for reproducibility.

Attributes

  • bagging_methods

    Valid bagging_method options.

  • models

Examples

from river import datasets
from river import ensemble
from river import evaluate
from river import linear_model
from river import metrics
from river import optim
from river import preprocessing

dataset = datasets.Phishing()

model = ensemble.LeveragingBaggingClassifier(
    model=(
        preprocessing.StandardScaler() |
        linear_model.LogisticRegression()
    ),
    n_models=3,
    seed=42
)

metric = metrics.F1()

evaluate.progressive_val_score(dataset, model, metric)
F1: 88.73%

Methods

learn_one

Update the model with a set of features x and a label y.

Parameters

  • x
  • y
  • kwargs

Returns

self

predict_one

Predict the label of a set of features x.

Parameters

  • x'dict'
  • kwargs

Returns

base.typing.ClfTarget | None: The predicted label.

predict_proba_one

Averages the predictions of each classifier.

Parameters

  • x
  • kwargs