Regression¶
Model | Dataset | MAE | RMSE | R2 | Memory in Mb | Time in s |
---|---|---|---|---|---|---|
Adaptive Model Rules | ChickWeights | 24.1943 | 37.2166 | 0.725319 | 0.046977 | 5.25855 |
Adaptive Model Rules | TrumpApproval | 1.39847 | 2.43336 | -1.02372 | 0.114429 | 9.38293 |
Adaptive Random Forest | ChickWeights | 26.1016 | 40.8094 | 0.669725 | 1.19043 | 56.006 |
Adaptive Random Forest | TrumpApproval | 0.800378 | 2.11495 | -0.528761 | 1.28462 | 87.4457 |
Aggregated Mondrian Forest | ChickWeights | 25.6742 | 41.7123 | 0.65479 | 8.21412 | 127.415 |
Aggregated Mondrian Forest | TrumpApproval | 0.268533 | 0.349421 | 0.958184 | 16.9323 | 186.034 |
Bagging | ChickWeights | 23.1143 | 36.6311 | 0.733893 | 0.628034 | 38.0203 |
Bagging | TrumpApproval | 0.908203 | 2.23718 | -0.710572 | 1.31579 | 82.0689 |
Exponentially Weighted Average | ChickWeights | 121.818 | 141.004 | -2.94294 | 3.09241 | 55.8851 |
Exponentially Weighted Average | TrumpApproval | 40.7546 | 40.7905 | -567.663 | 5.27613 | 141.452 |
Hoeffding Adaptive Tree | ChickWeights | 23.3739 | 37.6579 | 0.718766 | 0.0947332 | 7.99029 |
Hoeffding Adaptive Tree | TrumpApproval | 0.921313 | 2.23942 | -0.713986 | 0.138225 | 16.7576 |
Hoeffding Tree | ChickWeights | 23.1619 | 36.7336 | 0.732402 | 0.0440512 | 6.29305 |
Hoeffding Tree | TrumpApproval | 0.956103 | 2.24987 | -0.730022 | 0.148639 | 11.7656 |
Linear Regression | ChickWeights | 23.7587 | 37.0377 | 0.727954 | 0.00421047 | 3.21471 |
Linear Regression | TrumpApproval | 1.31455 | 3.91198 | -4.23035 | 0.00497341 | 11.5379 |
Linear Regression with l1 regularization | ChickWeights | 23.7577 | 37.078 | 0.727361 | 0.00444126 | 9.7485 |
Linear Regression with l1 regularization | TrumpApproval | 1.15377 | 3.82872 | -4.01007 | 0.0052042 | 13.3595 |
Linear Regression with l2 regularization | ChickWeights | 25.2738 | 38.5885 | 0.704694 | 0.00423336 | 1.22128 |
Linear Regression with l2 regularization | TrumpApproval | 1.87151 | 4.13052 | -4.83107 | 0.0049963 | 4.15677 |
Passive-Aggressive Regressor, mode 1 | ChickWeights | 24.3423 | 37.596 | 0.71969 | 0.00345898 | 1.10187 |
Passive-Aggressive Regressor, mode 1 | TrumpApproval | 4.98403 | 6.97667 | -15.6354 | 0.00443554 | 2.99338 |
Passive-Aggressive Regressor, mode 2 | ChickWeights | 100.624 | 143.066 | -3.05911 | 0.00345898 | 1.16798 |
Passive-Aggressive Regressor, mode 2 | TrumpApproval | 31.0933 | 34.6257 | -408.765 | 0.00443554 | 4.72475 |
River MLP | ChickWeights | 51.4078 | 80.9203 | -0.298584 | 0.0123129 | 28.2295 |
River MLP | TrumpApproval | 1.58058 | 5.03392 | -7.66066 | 0.0133505 | 32.2432 |
Stochastic Gradient Tree | ChickWeights | 68.7588 | 80.358 | -0.280601 | 1.12059 | 22.3803 |
Stochastic Gradient Tree | TrumpApproval | 9.42975 | 17.9379 | -108.972 | 3.08244 | 52.4507 |
Streaming Random Patches | ChickWeights | 23.7097 | 38.4416 | 0.706938 | 0.355182 | 93.4014 |
Streaming Random Patches | TrumpApproval | 0.656697 | 1.98434 | -0.345761 | 1.06461 | 134.903 |
[baseline] Mean predictor | ChickWeights | 50.2509 | 71.1144 | -0.00292947 | 0.000490189 | 0.302835 |
[baseline] Mean predictor | TrumpApproval | 1.56755 | 2.20286 | -0.658483 | 0.000490189 | 1.08177 |
k-Nearest Neighbors | ChickWeights | 24.8406 | 39.2016 | 0.695236 | 2.88522 | 40.0878 |
k-Nearest Neighbors | TrumpApproval | 0.641679 | 1.59417 | 0.131425 | 5.03263 | 123.301 |
Try reloading the page if something is buggy
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 /Users/mastelini/miniconda3/envs/river-benchmark/lib/python3.10/site-packages/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 /Users/mastelini/miniconda3/envs/river-benchmark/lib/python3.10/site-packages/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 engine=SWINN ( graph_k=20 dist_func=FunctionWrapper ( distance_function=functools.partial(, p=2) ) maxlen=1000 warm_up=500 max_candidates=50 delta=0.0001 prune_prob=0. n_iters=10 seed=None ) aggregation_method="mean" ) )
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 ), [] )
Aggregated Mondrian Forest
[]
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 engine=SWINN ( graph_k=20 dist_func=FunctionWrapper ( distance_function=functools.partial(, p=2) ) maxlen=1000 warm_up=500 max_candidates=50 delta=0.0001 prune_prob=0. n_iters=10 seed=None ) aggregation_method="mean" ), 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=(, , ) 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.12.9 IPython version : 8.29.0 river : 0.22.0 numpy : 2.0.2 scikit-learn: 1.5.1 pandas : 2.2.3 scipy : 1.14.1 Compiler : GCC 13.3.0 OS : Linux Release : 6.8.0-1021-azure Machine : x86_64 Processor : x86_64 CPU cores : 4 Architecture: 64bit