Skip to content

Benchmark

Binary classification

{ "$schema": "https://vega.github.io/schema/vega-lite/v5.json", "data": { "url": "benchmarks/binary_classification.csv" }, "params": [ { "name": "models", "select": { "type": "point", "fields": [ "model" ] }, "bind": "legend" }, { "name": "Dataset", "value": "Bananas", "bind": { "input": "select", "options": [ "Bananas", "Elec2", "Phishing", "SMTP" ] } }, { "name": "grid", "select": "interval", "bind": "scales" } ], "transform": [ { "filter": { "field": "dataset", "equal": { "expr": "Dataset" } } } ], "repeat": { "row": [ "Accuracy", "F1", "Memory in Mb", "Time in s" ] }, "spec": { "width": "container", "mark": "line", "encoding": { "x": { "field": "step", "type": "quantitative", "axis": { "titleFontSize": 18, "labelFontSize": 18, "title": "Instance" } }, "y": { "field": { "repeat": "row" }, "type": "quantitative", "axis": { "titleFontSize": 18, "labelFontSize": 18 } }, "color": { "field": "model", "type": "ordinal", "scale": { "scheme": "category20b" }, "title": "Models", "legend": { "titleFontSize": 18, "labelFontSize": 18, "labelLimit": 500 } }, "opacity": { "condition": { "param": "models", "value": 1 }, "value": 0.2 } } } }

Datasets

Bananas
Bananas dataset.

An artificial dataset where instances belongs to several clusters with a banana shape.
There are two attributes that correspond to the x and y axis, respectively.

    Name  Bananas                                               
    Task  Binary classification                                 
 Samples  5,300                                                 
Features  2                                                     
  Sparse  False                                                 
    Path  /home/kulbach/projects/river/river/datasets/banana.zip
Elec2
Electricity prices in New South Wales.

This is a binary classification task, where the goal is to predict if the price of electricity
will go up or down.

This data was collected from the Australian New South Wales Electricity Market. In this market,
prices are not fixed and are affected by demand and supply of the market. They are set every
five minutes. Electricity transfers to/from the neighboring state of Victoria were done to
alleviate fluctuations.

      Name  Elec2                                                      
      Task  Binary classification                                      
   Samples  45,312                                                     
  Features  8                                                          
    Sparse  False                                                      
      Path  /home/kulbach/river_data/Elec2/electricity.csv             
       URL  https://maxhalford.github.io/files/datasets/electricity.zip
      Size  2.95 MB                                                    
Downloaded  True                                                       
Phishing
Phishing websites.

This dataset contains features from web pages that are classified as phishing or not.

    Name  Phishing                                                   
    Task  Binary classification                                      
 Samples  1,250                                                      
Features  9                                                          
  Sparse  False                                                      
    Path  /home/kulbach/projects/river/river/datasets/phishing.csv.gz
SMTP
SMTP dataset from the KDD 1999 cup.

The goal is to predict whether or not an SMTP connection is anomalous or not. The dataset only
contains 2,211 (0.4%) positive labels.

      Name  SMTP                                                
      Task  Binary classification                               
   Samples  95,156                                              
  Features  3                                                   
    Sparse  False                                               
      Path  /home/kulbach/river_data/SMTP/smtp.csv              
       URL  https://maxhalford.github.io/files/datasets/smtp.zip
      Size  5.23 MB                                             
Downloaded  True                                                

Models

Logistic regression
Pipeline (
  StandardScaler (
    with_std=True
  ),
  LogisticRegression (
    optimizer=SGD (
      lr=Constant (
        learning_rate=0.005
      )
    )
    loss=Log (
      weight_pos=1.
      weight_neg=1.
    )
    l2=0.
    l1=0.
    intercept_init=0.
    intercept_lr=Constant (
      learning_rate=0.01
    )
    clip_gradient=1e+12
    initializer=Zeros ()
  )
)
ALMA
Pipeline (
  StandardScaler (
    with_std=True
  ),
  ALMAClassifier (
    p=2
    alpha=0.9
    B=1.111111
    C=1.414214
  )
)
sklearn SGDClassifier
Pipeline (
  StandardScaler (
    with_std=True
  ),
  SKL2RiverClassifier (
    estimator=SGDClassifier(eta0=0.005, learning_rate='constant', loss='log', penalty='none')
    classes=[False, True]
  )
)
Vowpal Wabbit logistic regression
VW2RiverClassifier ()
Naive Bayes
GaussianNB ()
Hoeffding Tree
HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
)
Hoeffding Adaptive Tree
HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=True
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=42
)
Adaptive Random Forest
[]
Streaming Random Patches
SRPClassifier (
  model=HoeffdingTreeClassifier (
    grace_period=50
    max_depth=inf
    split_criterion="info_gain"
    delta=0.01
    tau=0.05
    leaf_prediction="nba"
    nb_threshold=0
    nominal_attributes=None
    splitter=GaussianSplitter (
      n_splits=10
    )
    binary_split=False
    max_size=100.
    memory_estimate_period=1000000
    stop_mem_management=False
    remove_poor_attrs=False
    merit_preprune=True
  )
  n_models=10
  subspace_size=0.6
  training_method="patches"
  lam=6
  drift_detector=ADWIN (
    delta=1e-05
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  warning_detector=ADWIN (
    delta=0.0001
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  disable_detector="off"
  disable_weighted_vote=False
  seed=None
  metric=Accuracy (
    cm=ConfusionMatrix (
      classes=[]
    )
  )
)
k-Nearest Neighbors
Pipeline (
  StandardScaler (
    with_std=True
  ),
  KNNClassifier (
    n_neighbors=5
    window_size=100
    min_distance_keep=0.
    weighted=True
    cleanup_every=0
    distance_func=functools.partial(<function minkowski_distance at 0x7f2d38a59ea0>, p=2)
    softmax=False
  )
)
ADWIN Bagging
[HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
)]
AdaBoost
[HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
)]
Bagging
[HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=False
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=None
), HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=False
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=None
), HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=False
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=None
), HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=False
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=None
), HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=False
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=None
), HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=False
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=None
), HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=False
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=None
), HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=False
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=None
), HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=False
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=None
), HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=False
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=None
)]
Leveraging Bagging
[HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
)]
Stacking
[Pipeline (
  StandardScaler (
    with_std=True
  ),
  SoftmaxRegression (
    optimizer=SGD (
      lr=Constant (
        learning_rate=0.01
      )
    )
    loss=CrossEntropy (
      class_weight={}
    )
    l2=0
  )
), GaussianNB (), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), Pipeline (
  StandardScaler (
    with_std=True
  ),
  KNNClassifier (
    n_neighbors=5
    window_size=100
    min_distance_keep=0.
    weighted=True
    cleanup_every=0
    distance_func=functools.partial(<function minkowski_distance at 0x7f2d38a59ea0>, p=2)
    softmax=False
  )
)]
Voting
VotingClassifier (
  models=[Pipeline (
  StandardScaler (
    with_std=True
  ),
  SoftmaxRegression (
    optimizer=SGD (
      lr=Constant (
        learning_rate=0.01
      )
    )
    loss=CrossEntropy (
      class_weight={}
    )
    l2=0
  )
), GaussianNB (), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), Pipeline (
  StandardScaler (
    with_std=True
  ),
  KNNClassifier (
    n_neighbors=5
    window_size=100
    min_distance_keep=0.
    weighted=True
    cleanup_every=0
    distance_func=functools.partial(<function minkowski_distance at 0x7f2d38a59ea0>, p=2)
    softmax=False
  )
)]
  use_probabilities=True
)
[baseline] Last Class
NoChangeClassifier ()

Multiclass classification

{ "$schema": "https://vega.github.io/schema/vega-lite/v5.json", "data": { "url": "benchmarks/multiclass_classification.csv" }, "params": [ { "name": "models", "select": { "type": "point", "fields": [ "model" ] }, "bind": "legend" }, { "name": "Dataset", "value": "ImageSegments", "bind": { "input": "select", "options": [ "ImageSegments", "Insects", "Keystroke" ] } }, { "name": "grid", "select": "interval", "bind": "scales" } ], "transform": [ { "filter": { "field": "dataset", "equal": { "expr": "Dataset" } } } ], "repeat": { "row": [ "Accuracy", "MicroF1", "MacroF1", "Memory in Mb", "Time in s" ] }, "spec": { "width": "container", "mark": "line", "encoding": { "x": { "field": "step", "type": "quantitative", "axis": { "titleFontSize": 18, "labelFontSize": 18, "title": "Instance" } }, "y": { "field": { "repeat": "row" }, "type": "quantitative", "axis": { "titleFontSize": 18, "labelFontSize": 18 } }, "color": { "field": "model", "type": "ordinal", "scale": { "scheme": "category20b" }, "title": "Models", "legend": { "titleFontSize": 18, "labelFontSize": 18, "labelLimit": 500 } }, "opacity": { "condition": { "param": "models", "value": 1 }, "value": 0.2 } } } }

Datasets

ImageSegments
Image segments classification.

This dataset contains features that describe image segments into 7 classes: brickface, sky,
foliage, cement, window, path, and grass.

    Name  ImageSegments                                              
    Task  Multi-class classification                                 
 Samples  2,310                                                      
Features  18                                                         
  Sparse  False                                                      
    Path  /home/kulbach/projects/river/river/datasets/segment.csv.zip
Insects
Insects dataset.

This dataset has different variants, which are:

- abrupt_balanced
- abrupt_imbalanced
- gradual_balanced
- gradual_imbalanced
- incremental-abrupt_balanced
- incremental-abrupt_imbalanced
- incremental-reoccurring_balanced
- incremental-reoccurring_imbalanced
- incremental_balanced
- incremental_imbalanced
- out-of-control

The number of samples and the difficulty change from one variant to another. The number of
classes is always the same (6), except for the last variant (24).

      Name  Insects                                                                                 
      Task  Multi-class classification                                                              
   Samples  52,848                                                                                  
  Features  33                                                                                      
   Classes  6                                                                                       
    Sparse  False                                                                                   
      Path  /home/kulbach/river_data/Insects/INSECTS-abrupt_balanced_norm.arff                      
       URL  http://sites.labic.icmc.usp.br/vsouza/repository/creme/INSECTS-abrupt_balanced_norm.arff
      Size  15.66 MB                                                                                
Downloaded  True                                                                                    
   Variant  abrupt_balanced                                                                         

Parameters
----------
    variant
        Indicates which variant of the dataset to load.
Keystroke
CMU keystroke dataset.

Users are tasked to type in a password. The task is to determine which user is typing in the
password.

The only difference with the original dataset is that the "sessionIndex" and "rep" attributes
have been dropped.

      Name  Keystroke                                                    
      Task  Multi-class classification                                   
   Samples  20,400                                                       
  Features  31                                                           
    Sparse  False                                                        
      Path  /home/kulbach/river_data/Keystroke/DSL-StrongPasswordData.csv
       URL  http://www.cs.cmu.edu/~keystroke/DSL-StrongPasswordData.csv  
      Size  4.45 MB                                                      
Downloaded  True                                                         

Models

Naive Bayes
GaussianNB ()
Hoeffding Tree
HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
)
Hoeffding Adaptive Tree
HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=True
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=42
)
Adaptive Random Forest
[]
Streaming Random Patches
SRPClassifier (
  model=HoeffdingTreeClassifier (
    grace_period=50
    max_depth=inf
    split_criterion="info_gain"
    delta=0.01
    tau=0.05
    leaf_prediction="nba"
    nb_threshold=0
    nominal_attributes=None
    splitter=GaussianSplitter (
      n_splits=10
    )
    binary_split=False
    max_size=100.
    memory_estimate_period=1000000
    stop_mem_management=False
    remove_poor_attrs=False
    merit_preprune=True
  )
  n_models=10
  subspace_size=0.6
  training_method="patches"
  lam=6
  drift_detector=ADWIN (
    delta=1e-05
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  warning_detector=ADWIN (
    delta=0.0001
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  disable_detector="off"
  disable_weighted_vote=False
  seed=None
  metric=Accuracy (
    cm=ConfusionMatrix (
      classes=[]
    )
  )
)
k-Nearest Neighbors
Pipeline (
  StandardScaler (
    with_std=True
  ),
  KNNClassifier (
    n_neighbors=5
    window_size=100
    min_distance_keep=0.
    weighted=True
    cleanup_every=0
    distance_func=functools.partial(<function minkowski_distance at 0x7f2d38a59ea0>, p=2)
    softmax=False
  )
)
ADWIN Bagging
[HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
)]
AdaBoost
[HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
)]
Bagging
[HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=False
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=None
), HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=False
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=None
), HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=False
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=None
), HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=False
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=None
), HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=False
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=None
), HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=False
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=None
), HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=False
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=None
), HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=False
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=None
), HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=False
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=None
), HoeffdingAdaptiveTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  bootstrap_sampling=False
  drift_window_threshold=300
  drift_detector=ADWIN (
    delta=0.002
    clock=32
    max_buckets=5
    min_window_length=5
    grace_period=10
  )
  switch_significance=0.05
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
  seed=None
)]
Leveraging Bagging
[HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
)]
Stacking
[Pipeline (
  StandardScaler (
    with_std=True
  ),
  SoftmaxRegression (
    optimizer=SGD (
      lr=Constant (
        learning_rate=0.01
      )
    )
    loss=CrossEntropy (
      class_weight={}
    )
    l2=0
  )
), GaussianNB (), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), Pipeline (
  StandardScaler (
    with_std=True
  ),
  KNNClassifier (
    n_neighbors=5
    window_size=100
    min_distance_keep=0.
    weighted=True
    cleanup_every=0
    distance_func=functools.partial(<function minkowski_distance at 0x7f2d38a59ea0>, p=2)
    softmax=False
  )
)]
Voting
VotingClassifier (
  models=[Pipeline (
  StandardScaler (
    with_std=True
  ),
  SoftmaxRegression (
    optimizer=SGD (
      lr=Constant (
        learning_rate=0.01
      )
    )
    loss=CrossEntropy (
      class_weight={}
    )
    l2=0
  )
), GaussianNB (), HoeffdingTreeClassifier (
  grace_period=200
  max_depth=inf
  split_criterion="info_gain"
  delta=1e-07
  tau=0.05
  leaf_prediction="nba"
  nb_threshold=0
  nominal_attributes=None
  splitter=GaussianSplitter (
    n_splits=10
  )
  binary_split=False
  max_size=100.
  memory_estimate_period=1000000
  stop_mem_management=False
  remove_poor_attrs=False
  merit_preprune=True
), Pipeline (
  StandardScaler (
    with_std=True
  ),
  KNNClassifier (
    n_neighbors=5
    window_size=100
    min_distance_keep=0.
    weighted=True
    cleanup_every=0
    distance_func=functools.partial(<function minkowski_distance at 0x7f2d38a59ea0>, p=2)
    softmax=False
  )
)]
  use_probabilities=True
)
[baseline] Last Class
NoChangeClassifier ()

Regression

{ "$schema": "https://vega.github.io/schema/vega-lite/v5.json", "data": { "url": "benchmarks/regression.csv" }, "params": [ { "name": "models", "select": { "type": "point", "fields": [ "model" ] }, "bind": "legend" }, { "name": "Dataset", "value": "ChickWeights", "bind": { "input": "select", "options": [ "ChickWeights", "TrumpApproval" ] } }, { "name": "grid", "select": "interval", "bind": "scales" } ], "transform": [ { "filter": { "field": "dataset", "equal": { "expr": "Dataset" } } } ], "repeat": { "row": [ "MAE", "RMSE", "R2", "Memory in Mb", "Time in s" ] }, "spec": { "width": "container", "mark": "line", "encoding": { "x": { "field": "step", "type": "quantitative", "axis": { "titleFontSize": 18, "labelFontSize": 18, "title": "Instance" } }, "y": { "field": { "repeat": "row" }, "type": "quantitative", "axis": { "titleFontSize": 18, "labelFontSize": 18 } }, "color": { "field": "model", "type": "ordinal", "scale": { "scheme": "category20b" }, "title": "Models", "legend": { "titleFontSize": 18, "labelFontSize": 18, "labelLimit": 500 } }, "opacity": { "condition": { "param": "models", "value": 1 }, "value": 0.2 } } } }

Datasets

ChickWeights
Chick weights along time.

The stream contains 578 items and 3 features. The goal is to predict the weight of each chick
along time, according to the diet the chick is on. The data is ordered by time and then by
chick.

    Name  ChickWeights                                                 
    Task  Regression                                                   
 Samples  578                                                          
Features  3                                                            
  Sparse  False                                                        
    Path  /home/kulbach/projects/river/river/datasets/chick-weights.csv
TrumpApproval
Donald Trump approval ratings.

This dataset was obtained by reshaping the data used by FiveThirtyEight for analyzing Donald
Trump's approval ratings. It contains 5 features, which are approval ratings collected by
5 polling agencies. The target is the approval rating from FiveThirtyEight's model. The goal of
this task is to see if we can reproduce FiveThirtyEight's model.

    Name  TrumpApproval                                                    
    Task  Regression                                                       
 Samples  1,001                                                            
Features  6                                                                
  Sparse  False                                                            
    Path  /home/kulbach/projects/river/river/datasets/trump_approval.csv.gz

Models

Linear Regression
Pipeline (
  StandardScaler (
    with_std=True
  ),
  LinearRegression (
    optimizer=SGD (
      lr=Constant (
        learning_rate=0.01
      )
    )
    loss=Squared ()
    l2=0.
    l1=0.
    intercept_init=0.
    intercept_lr=Constant (
      learning_rate=0.01
    )
    clip_gradient=1e+12
    initializer=Zeros ()
  )
)
Linear Regression with l1 regularization
Pipeline (
  StandardScaler (
    with_std=True
  ),
  LinearRegression (
    optimizer=SGD (
      lr=Constant (
        learning_rate=0.01
      )
    )
    loss=Squared ()
    l2=0.
    l1=1.
    intercept_init=0.
    intercept_lr=Constant (
      learning_rate=0.01
    )
    clip_gradient=1e+12
    initializer=Zeros ()
  )
)
Linear Regression with l2 regularization
Pipeline (
  StandardScaler (
    with_std=True
  ),
  LinearRegression (
    optimizer=SGD (
      lr=Constant (
        learning_rate=0.01
      )
    )
    loss=Squared ()
    l2=1.
    l1=0.
    intercept_init=0.
    intercept_lr=Constant (
      learning_rate=0.01
    )
    clip_gradient=1e+12
    initializer=Zeros ()
  )
)
Passive-Aggressive Regressor, mode 1
Pipeline (
  StandardScaler (
    with_std=True
  ),
  PARegressor (
    C=1.
    mode=1
    eps=0.1
    learn_intercept=True
  )
)
Passive-Aggressive Regressor, mode 2
Pipeline (
  StandardScaler (
    with_std=True
  ),
  PARegressor (
    C=1.
    mode=2
    eps=0.1
    learn_intercept=True
  )
)
k-Nearest Neighbors
Pipeline (
  StandardScaler (
    with_std=True
  ),
  KNNRegressor (
    n_neighbors=5
    window_size=100
    aggregation_method="mean"
    min_distance_keep=0.
    distance_func=functools.partial(<function minkowski_distance at 0x7f2d38a59ea0>, p=2)
  )
)
Hoeffding Tree
Pipeline (
  StandardScaler (
    with_std=True
  ),
  HoeffdingTreeRegressor (
    grace_period=200
    max_depth=inf
    delta=1e-07
    tau=0.05
    leaf_prediction="adaptive"
    leaf_model=LinearRegression (
      optimizer=SGD (
        lr=Constant (
          learning_rate=0.01
        )
      )
      loss=Squared ()
      l2=0.
      l1=0.
      intercept_init=0.
      intercept_lr=Constant (
        learning_rate=0.01
      )
      clip_gradient=1e+12
      initializer=Zeros ()
    )
    model_selector_decay=0.95
    nominal_attributes=None
    splitter=TEBSTSplitter (
      digits=1
    )
    min_samples_split=5
    binary_split=False
    max_size=500.
    memory_estimate_period=1000000
    stop_mem_management=False
    remove_poor_attrs=False
    merit_preprune=True
  )
)
Hoeffding Adaptive Tree
Pipeline (
  StandardScaler (
    with_std=True
  ),
  HoeffdingAdaptiveTreeRegressor (
    grace_period=200
    max_depth=inf
    delta=1e-07
    tau=0.05
    leaf_prediction="adaptive"
    leaf_model=LinearRegression (
      optimizer=SGD (
        lr=Constant (
          learning_rate=0.01
        )
      )
      loss=Squared ()
      l2=0.
      l1=0.
      intercept_init=0.
      intercept_lr=Constant (
        learning_rate=0.01
      )
      clip_gradient=1e+12
      initializer=Zeros ()
    )
    model_selector_decay=0.95
    nominal_attributes=None
    splitter=TEBSTSplitter (
      digits=1
    )
    min_samples_split=5
    bootstrap_sampling=True
    drift_window_threshold=300
    drift_detector=ADWIN (
      delta=0.002
      clock=32
      max_buckets=5
      min_window_length=5
      grace_period=10
    )
    switch_significance=0.05
    binary_split=False
    max_size=500.
    memory_estimate_period=1000000
    stop_mem_management=False
    remove_poor_attrs=False
    merit_preprune=True
    seed=42
  )
)
Stochastic Gradient Tree
SGTRegressor (
  delta=1e-07
  grace_period=200
  init_pred=0.
  max_depth=inf
  lambda_value=0.1
  gamma=1.
  nominal_attributes=[]
  feature_quantizer=StaticQuantizer (
    n_bins=64
    warm_start=100
    buckets=None
  )
)
Adaptive Random Forest
Pipeline (
  StandardScaler (
    with_std=True
  ),
  []
)
Adaptive Model Rules
Pipeline (
  StandardScaler (
    with_std=True
  ),
  AMRules (
    n_min=200
    delta=1e-07
    tau=0.05
    pred_type="adaptive"
    pred_model=LinearRegression (
      optimizer=SGD (
        lr=Constant (
          learning_rate=0.01
        )
      )
      loss=Squared ()
      l2=0.
      l1=0.
      intercept_init=0.
      intercept_lr=Constant (
        learning_rate=0.01
      )
      clip_gradient=1e+12
      initializer=Zeros ()
    )
    splitter=TEBSTSplitter (
      digits=1
    )
    drift_detector=ADWIN (
      delta=0.002
      clock=32
      max_buckets=5
      min_window_length=5
      grace_period=10
    )
    fading_factor=0.99
    anomaly_threshold=-0.75
    m_min=30
    ordered_rule_set=True
    min_samples_split=5
  )
)
Streaming Random Patches
Pipeline (
  StandardScaler (
    with_std=True
  ),
  SRPRegressor (
    model=HoeffdingTreeRegressor (
      grace_period=50
      max_depth=inf
      delta=0.01
      tau=0.05
      leaf_prediction="adaptive"
      leaf_model=LinearRegression (
        optimizer=SGD (
          lr=Constant (
            learning_rate=0.01
          )
        )
        loss=Squared ()
        l2=0.
        l1=0.
        intercept_init=0.
        intercept_lr=Constant (
          learning_rate=0.01
        )
        clip_gradient=1e+12
        initializer=Zeros ()
      )
      model_selector_decay=0.95
      nominal_attributes=None
      splitter=TEBSTSplitter (
        digits=1
      )
      min_samples_split=5
      binary_split=False
      max_size=500.
      memory_estimate_period=1000000
      stop_mem_management=False
      remove_poor_attrs=False
      merit_preprune=True
    )
    n_models=10
    subspace_size=0.6
    training_method="patches"
    lam=6
    drift_detector=ADWIN (
      delta=1e-05
      clock=32
      max_buckets=5
      min_window_length=5
      grace_period=10
    )
    warning_detector=ADWIN (
      delta=0.0001
      clock=32
      max_buckets=5
      min_window_length=5
      grace_period=10
    )
    disable_detector="off"
    disable_weighted_vote=True
    drift_detection_criteria="error"
    aggregation_method="mean"
    seed=42
    metric=MAE ()
  )
)
Bagging
Pipeline (
  StandardScaler (
    with_std=True
  ),
  [HoeffdingAdaptiveTreeRegressor (
    grace_period=200
    max_depth=inf
    delta=1e-07
    tau=0.05
    leaf_prediction="adaptive"
    leaf_model=LinearRegression (
      optimizer=SGD (
        lr=Constant (
          learning_rate=0.01
        )
      )
      loss=Squared ()
      l2=0.
      l1=0.
      intercept_init=0.
      intercept_lr=Constant (
        learning_rate=0.01
      )
      clip_gradient=1e+12
      initializer=Zeros ()
    )
    model_selector_decay=0.95
    nominal_attributes=None
    splitter=TEBSTSplitter (
      digits=1
    )
    min_samples_split=5
    bootstrap_sampling=False
    drift_window_threshold=300
    drift_detector=ADWIN (
      delta=0.002
      clock=32
      max_buckets=5
      min_window_length=5
      grace_period=10
    )
    switch_significance=0.05
    binary_split=False
    max_size=500.
    memory_estimate_period=1000000
    stop_mem_management=False
    remove_poor_attrs=False
    merit_preprune=True
    seed=None
  ), HoeffdingAdaptiveTreeRegressor (
    grace_period=200
    max_depth=inf
    delta=1e-07
    tau=0.05
    leaf_prediction="adaptive"
    leaf_model=LinearRegression (
      optimizer=SGD (
        lr=Constant (
          learning_rate=0.01
        )
      )
      loss=Squared ()
      l2=0.
      l1=0.
      intercept_init=0.
      intercept_lr=Constant (
        learning_rate=0.01
      )
      clip_gradient=1e+12
      initializer=Zeros ()
    )
    model_selector_decay=0.95
    nominal_attributes=None
    splitter=TEBSTSplitter (
      digits=1
    )
    min_samples_split=5
    bootstrap_sampling=False
    drift_window_threshold=300
    drift_detector=ADWIN (
      delta=0.002
      clock=32
      max_buckets=5
      min_window_length=5
      grace_period=10
    )
    switch_significance=0.05
    binary_split=False
    max_size=500.
    memory_estimate_period=1000000
    stop_mem_management=False
    remove_poor_attrs=False
    merit_preprune=True
    seed=None
  ), HoeffdingAdaptiveTreeRegressor (
    grace_period=200
    max_depth=inf
    delta=1e-07
    tau=0.05
    leaf_prediction="adaptive"
    leaf_model=LinearRegression (
      optimizer=SGD (
        lr=Constant (
          learning_rate=0.01
        )
      )
      loss=Squared ()
      l2=0.
      l1=0.
      intercept_init=0.
      intercept_lr=Constant (
        learning_rate=0.01
      )
      clip_gradient=1e+12
      initializer=Zeros ()
    )
    model_selector_decay=0.95
    nominal_attributes=None
    splitter=TEBSTSplitter (
      digits=1
    )
    min_samples_split=5
    bootstrap_sampling=False
    drift_window_threshold=300
    drift_detector=ADWIN (
      delta=0.002
      clock=32
      max_buckets=5
      min_window_length=5
      grace_period=10
    )
    switch_significance=0.05
    binary_split=False
    max_size=500.
    memory_estimate_period=1000000
    stop_mem_management=False
    remove_poor_attrs=False
    merit_preprune=True
    seed=None
  ), HoeffdingAdaptiveTreeRegressor (
    grace_period=200
    max_depth=inf
    delta=1e-07
    tau=0.05
    leaf_prediction="adaptive"
    leaf_model=LinearRegression (
      optimizer=SGD (
        lr=Constant (
          learning_rate=0.01
        )
      )
      loss=Squared ()
      l2=0.
      l1=0.
      intercept_init=0.
      intercept_lr=Constant (
        learning_rate=0.01
      )
      clip_gradient=1e+12
      initializer=Zeros ()
    )
    model_selector_decay=0.95
    nominal_attributes=None
    splitter=TEBSTSplitter (
      digits=1
    )
    min_samples_split=5
    bootstrap_sampling=False
    drift_window_threshold=300
    drift_detector=ADWIN (
      delta=0.002
      clock=32
      max_buckets=5
      min_window_length=5
      grace_period=10
    )
    switch_significance=0.05
    binary_split=False
    max_size=500.
    memory_estimate_period=1000000
    stop_mem_management=False
    remove_poor_attrs=False
    merit_preprune=True
    seed=None
  ), HoeffdingAdaptiveTreeRegressor (
    grace_period=200
    max_depth=inf
    delta=1e-07
    tau=0.05
    leaf_prediction="adaptive"
    leaf_model=LinearRegression (
      optimizer=SGD (
        lr=Constant (
          learning_rate=0.01
        )
      )
      loss=Squared ()
      l2=0.
      l1=0.
      intercept_init=0.
      intercept_lr=Constant (
        learning_rate=0.01
      )
      clip_gradient=1e+12
      initializer=Zeros ()
    )
    model_selector_decay=0.95
    nominal_attributes=None
    splitter=TEBSTSplitter (
      digits=1
    )
    min_samples_split=5
    bootstrap_sampling=False
    drift_window_threshold=300
    drift_detector=ADWIN (
      delta=0.002
      clock=32
      max_buckets=5
      min_window_length=5
      grace_period=10
    )
    switch_significance=0.05
    binary_split=False
    max_size=500.
    memory_estimate_period=1000000
    stop_mem_management=False
    remove_poor_attrs=False
    merit_preprune=True
    seed=None
  ), HoeffdingAdaptiveTreeRegressor (
    grace_period=200
    max_depth=inf
    delta=1e-07
    tau=0.05
    leaf_prediction="adaptive"
    leaf_model=LinearRegression (
      optimizer=SGD (
        lr=Constant (
          learning_rate=0.01
        )
      )
      loss=Squared ()
      l2=0.
      l1=0.
      intercept_init=0.
      intercept_lr=Constant (
        learning_rate=0.01
      )
      clip_gradient=1e+12
      initializer=Zeros ()
    )
    model_selector_decay=0.95
    nominal_attributes=None
    splitter=TEBSTSplitter (
      digits=1
    )
    min_samples_split=5
    bootstrap_sampling=False
    drift_window_threshold=300
    drift_detector=ADWIN (
      delta=0.002
      clock=32
      max_buckets=5
      min_window_length=5
      grace_period=10
    )
    switch_significance=0.05
    binary_split=False
    max_size=500.
    memory_estimate_period=1000000
    stop_mem_management=False
    remove_poor_attrs=False
    merit_preprune=True
    seed=None
  ), HoeffdingAdaptiveTreeRegressor (
    grace_period=200
    max_depth=inf
    delta=1e-07
    tau=0.05
    leaf_prediction="adaptive"
    leaf_model=LinearRegression (
      optimizer=SGD (
        lr=Constant (
          learning_rate=0.01
        )
      )
      loss=Squared ()
      l2=0.
      l1=0.
      intercept_init=0.
      intercept_lr=Constant (
        learning_rate=0.01
      )
      clip_gradient=1e+12
      initializer=Zeros ()
    )
    model_selector_decay=0.95
    nominal_attributes=None
    splitter=TEBSTSplitter (
      digits=1
    )
    min_samples_split=5
    bootstrap_sampling=False
    drift_window_threshold=300
    drift_detector=ADWIN (
      delta=0.002
      clock=32
      max_buckets=5
      min_window_length=5
      grace_period=10
    )
    switch_significance=0.05
    binary_split=False
    max_size=500.
    memory_estimate_period=1000000
    stop_mem_management=False
    remove_poor_attrs=False
    merit_preprune=True
    seed=None
  ), HoeffdingAdaptiveTreeRegressor (
    grace_period=200
    max_depth=inf
    delta=1e-07
    tau=0.05
    leaf_prediction="adaptive"
    leaf_model=LinearRegression (
      optimizer=SGD (
        lr=Constant (
          learning_rate=0.01
        )
      )
      loss=Squared ()
      l2=0.
      l1=0.
      intercept_init=0.
      intercept_lr=Constant (
        learning_rate=0.01
      )
      clip_gradient=1e+12
      initializer=Zeros ()
    )
    model_selector_decay=0.95
    nominal_attributes=None
    splitter=TEBSTSplitter (
      digits=1
    )
    min_samples_split=5
    bootstrap_sampling=False
    drift_window_threshold=300
    drift_detector=ADWIN (
      delta=0.002
      clock=32
      max_buckets=5
      min_window_length=5
      grace_period=10
    )
    switch_significance=0.05
    binary_split=False
    max_size=500.
    memory_estimate_period=1000000
    stop_mem_management=False
    remove_poor_attrs=False
    merit_preprune=True
    seed=None
  ), HoeffdingAdaptiveTreeRegressor (
    grace_period=200
    max_depth=inf
    delta=1e-07
    tau=0.05
    leaf_prediction="adaptive"
    leaf_model=LinearRegression (
      optimizer=SGD (
        lr=Constant (
          learning_rate=0.01
        )
      )
      loss=Squared ()
      l2=0.
      l1=0.
      intercept_init=0.
      intercept_lr=Constant (
        learning_rate=0.01
      )
      clip_gradient=1e+12
      initializer=Zeros ()
    )
    model_selector_decay=0.95
    nominal_attributes=None
    splitter=TEBSTSplitter (
      digits=1
    )
    min_samples_split=5
    bootstrap_sampling=False
    drift_window_threshold=300
    drift_detector=ADWIN (
      delta=0.002
      clock=32
      max_buckets=5
      min_window_length=5
      grace_period=10
    )
    switch_significance=0.05
    binary_split=False
    max_size=500.
    memory_estimate_period=1000000
    stop_mem_management=False
    remove_poor_attrs=False
    merit_preprune=True
    seed=None
  ), HoeffdingAdaptiveTreeRegressor (
    grace_period=200
    max_depth=inf
    delta=1e-07
    tau=0.05
    leaf_prediction="adaptive"
    leaf_model=LinearRegression (
      optimizer=SGD (
        lr=Constant (
          learning_rate=0.01
        )
      )
      loss=Squared ()
      l2=0.
      l1=0.
      intercept_init=0.
      intercept_lr=Constant (
        learning_rate=0.01
      )
      clip_gradient=1e+12
      initializer=Zeros ()
    )
    model_selector_decay=0.95
    nominal_attributes=None
    splitter=TEBSTSplitter (
      digits=1
    )
    min_samples_split=5
    bootstrap_sampling=False
    drift_window_threshold=300
    drift_detector=ADWIN (
      delta=0.002
      clock=32
      max_buckets=5
      min_window_length=5
      grace_period=10
    )
    switch_significance=0.05
    binary_split=False
    max_size=500.
    memory_estimate_period=1000000
    stop_mem_management=False
    remove_poor_attrs=False
    merit_preprune=True
    seed=None
  )]
)
Exponentially Weighted Average
Pipeline (
  StandardScaler (
    with_std=True
  ),
  [LinearRegression (
    optimizer=SGD (
      lr=Constant (
        learning_rate=0.01
      )
    )
    loss=Squared ()
    l2=0.
    l1=0.
    intercept_init=0.
    intercept_lr=Constant (
      learning_rate=0.01
    )
    clip_gradient=1e+12
    initializer=Zeros ()
  ), HoeffdingAdaptiveTreeRegressor (
    grace_period=200
    max_depth=inf
    delta=1e-07
    tau=0.05
    leaf_prediction="adaptive"
    leaf_model=LinearRegression (
      optimizer=SGD (
        lr=Constant (
          learning_rate=0.01
        )
      )
      loss=Squared ()
      l2=0.
      l1=0.
      intercept_init=0.
      intercept_lr=Constant (
        learning_rate=0.01
      )
      clip_gradient=1e+12
      initializer=Zeros ()
    )
    model_selector_decay=0.95
    nominal_attributes=None
    splitter=TEBSTSplitter (
      digits=1
    )
    min_samples_split=5
    bootstrap_sampling=True
    drift_window_threshold=300
    drift_detector=ADWIN (
      delta=0.002
      clock=32
      max_buckets=5
      min_window_length=5
      grace_period=10
    )
    switch_significance=0.05
    binary_split=False
    max_size=500.
    memory_estimate_period=1000000
    stop_mem_management=False
    remove_poor_attrs=False
    merit_preprune=True
    seed=None
  ), KNNRegressor (
    n_neighbors=5
    window_size=100
    aggregation_method="mean"
    min_distance_keep=0.
    distance_func=functools.partial(<function minkowski_distance at 0x7f2d38a59ea0>, p=2)
  ), AMRules (
    n_min=200
    delta=1e-07
    tau=0.05
    pred_type="adaptive"
    pred_model=LinearRegression (
      optimizer=SGD (
        lr=Constant (
          learning_rate=0.01
        )
      )
      loss=Squared ()
      l2=0.
      l1=0.
      intercept_init=0.
      intercept_lr=Constant (
        learning_rate=0.01
      )
      clip_gradient=1e+12
      initializer=Zeros ()
    )
    splitter=TEBSTSplitter (
      digits=1
    )
    drift_detector=ADWIN (
      delta=0.002
      clock=32
      max_buckets=5
      min_window_length=5
      grace_period=10
    )
    fading_factor=0.99
    anomaly_threshold=-0.75
    m_min=30
    ordered_rule_set=True
    min_samples_split=5
  )]
)
River MLP
Pipeline (
  StandardScaler (
    with_std=True
  ),
  MLPRegressor (
    hidden_dims=(5,)
    activations=(<class 'river.neural_net.activations.ReLU'>, <class 'river.neural_net.activations.ReLU'>, <class 'river.neural_net.activations.Identity'>)
    loss=Squared ()
    optimizer=SGD (
      lr=Constant (
        learning_rate=0.001
      )
    )
    seed=42
  )
)
[baseline] Mean predictor
StatisticRegressor (
  statistic=Mean ()
)

Environment

Python implementation: CPython
Python version       : 3.9.16
IPython version      : 8.11.0

river       : 0.15.0
numpy       : 1.24.2
scikit-learn: 1.2.1
pandas      : 1.5.3
scipy       : 1.10.1

Compiler    : GCC 11.3.0
OS          : Linux
Release     : 5.15.0-1033-azure
Machine     : x86_64
Processor   : x86_64
CPU cores   : 2
Architecture: 64bit