ENSEMBLE
BaggingRegressor
A Bagging regressor.
Example of usage
Illustrate how BaggingRegressor processes labelled retail behaviour records.
Usage / limitations
+Use when: Combine models for improved predictions.
−Limitations: Check input requirements, mathematical assumptions and version-specific behaviour before using.
Mathematical formula
Ensemble predictions combine multiple learners; see the method-specific estimator documentation for its exact objective.
Sample dataShow
{
"variable": "customer_records",
"domain": "Retail customer behaviour and quarterly retention",
"feature_names": [
"monthly_spend_gbp",
"visits_per_month",
"tenure_months",
"support_tickets"
],
"records": [
{
"customer_id": "R01",
"monthly_spend_gbp": 28.0,
"visits_per_month": 2,
"tenure_months": 2,
"support_tickets": 0,
"retained_next_quarter": 0,
"projected_order_value_gbp": 44.0
},
{
"customer_id": "R02",
"monthly_spend_gbp": 40.5,
"visits_per_month": 9,
"tenure_months": 7,
"support_tickets": 3,
"retained_next_quarter": 0,
"projected_order_value_gbp": 73.77
},
{
"customer_id": "R03",
"monthly_spend_gbp": 53.0,
"visits_per_month": 16,
"tenure_months": 12,
"support_tickets": 0,
"retained_next_quarter": 0,
"projected_order_value_gbp": 119.75
},
{
"customer_id": "R04",
"monthly_spend_gbp": 61.0,
"visits_per_month": 8,
"tenure_months": 17,
"support_tickets": 3,
"retained_next_quarter": 0,
"projected_order_value_gbp": 95.15
},
{
"customer_id": "R05",
"monthly_spend_gbp": 73.5,
"visits_per_month": 15,
"tenure_months": 22,
"support_tickets": 0,
"retained_next_quarter": 1,
"projected_order_value_gbp": 134.32
},
{
"customer_id": "R06",
"monthly_spend_gbp": 86.0,
"visits_per_month": 7,
"tenure_months": 27,
"support_tickets": 3,
"retained_next_quarter": 0,
"projected_order_value_gbp": 113.1
},
{
"customer_id": "R07",
"monthly_spend_gbp": 94.0,
"visits_per_month": 14,
"tenure_months": 2,
"support_tickets": 0,
"retained_next_quarter": 1,
"projected_order_value_gbp": 137.7
},
{
"customer_id": "R08",
"monthly_spend_gbp": 106.5,
"visits_per_month": 6,
"tenure_months": 7,
"support_tickets": 3,
"retained_next_quarter": 0,
"projected_order_value_gbp": 116.47
},
{
"customer_id": "R09",
"monthly_spend_gbp": 119.0,
"visits_per_month": 13,
"tenure_months": 12,
"support_tickets": 0,
"retained_next_quarter": 1,
"projected_order_value_gbp": 155.65
},
{
"customer_id": "R10",
"monthly_spend_gbp": 127.0,
"visits_per_month": 5,
"tenure_months": 17,
"support_tickets": 3,
"retained_next_quarter": 0,
"projected_order_value_gbp": 131.05
},
{
"customer_id": "R11",
"monthly_spend_gbp": 29.5,
"visits_per_month": 12,
"tenure_months": 22,
"support_tickets": 0,
"retained_next_quarter": 1,
"projected_order_value_gbp": 94.53
},
{
"customer_id": "R12",
"monthly_spend_gbp": 42.0,
"visits_per_month": 4,
"tenure_months": 27,
"support_tickets": 3,
"retained_next_quarter": 0,
"projected_order_value_gbp": 73.3
},
{
"customer_id": "R13",
"monthly_spend_gbp": 50.0,
"visits_per_month": 11,
"tenure_months": 2,
"support_tickets": 0,
"retained_next_quarter": 0,
"projected_order_value_gbp": 91.1
},
{
"customer_id": "R14",
"monthly_spend_gbp": 62.5,
"visits_per_month": 3,
"tenure_months": 7,
"support_tickets": 3,
"retained_next_quarter": 0,
"projected_order_value_gbp": 69.88
},
{
"customer_id": "R15",
"monthly_spend_gbp": 75.0,
"visits_per_month": 10,
"tenure_months": 12,
"support_tickets": 0,
"retained_next_quarter": 0,
"projected_order_value_gbp": 115.85
},
{
"customer_id": "R16",
"monthly_spend_gbp": 83.0,
"visits_per_month": 2,
"tenure_months": 17,
"support_tickets": 3,
"retained_next_quarter": 0,
"projected_order_value_gbp": 91.25
},
{
"customer_id": "R17",
"monthly_spend_gbp": 95.5,
"visits_per_month": 9,
"tenure_months": 22,
"support_tickets": 0,
"retained_next_quarter": 1,
"projected_order_value_gbp": 130.42
},
{
"customer_id": "R18",
"monthly_spend_gbp": 108.0,
"visits_per_month": 16,
"tenure_months": 27,
"support_tickets": 3,
"retained_next_quarter": 1,
"projected_order_value_gbp": 160.2
},
{
"customer_id": "R19",
"monthly_spend_gbp": 116.0,
"visits_per_month": 8,
"tenure_months": 2,
"support_tickets": 0,
"retained_next_quarter": 1,
"projected_order_value_gbp": 133.8
},
{
"customer_id": "R20",
"monthly_spend_gbp": 128.5,
"visits_per_month": 15,
"tenure_months": 7,
"support_tickets": 3,
"retained_next_quarter": 1,
"projected_order_value_gbp": 163.57
},
{
"customer_id": "R21",
"monthly_spend_gbp": 31.0,
"visits_per_month": 7,
"tenure_months": 12,
"support_tickets": 0,
"retained_next_quarter": 0,
"projected_order_value_gbp": 69.25
},
{
"customer_id": "R22",
"monthly_spend_gbp": 39.0,
"visits_per_month": 14,
"tenure_months": 17,
"support_tickets": 3,
"retained_next_quarter": 0,
"projected_order_value_gbp": 95.65
},
{
"customer_id": "R23",
"monthly_spend_gbp": 51.5,
"visits_per_month": 6,
"tenure_months": 22,
"support_tickets": 0,
"retained_next_quarter": 1,
"projected_order_value_gbp": 90.63
},
{
"customer_id": "R24",
"monthly_spend_gbp": 64.0,
"visits_per_month": 13,
"tenure_months": 27,
"support_tickets": 3,
"retained_next_quarter": 0,
"projected_order_value_gbp": 120.4
},
{
"customer_id": "R25",
"monthly_spend_gbp": 72.0,
"visits_per_month": 5,
"tenure_months": 2,
"support_tickets": 0,
"retained_next_quarter": 0,
"projected_order_value_gbp": 87.2
},
{
"customer_id": "R26",
"monthly_spend_gbp": 84.5,
"visits_per_month": 12,
"tenure_months": 7,
"support_tickets": 3,
"retained_next_quarter": 1,
"projected_order_value_gbp": 116.98
},
{
"customer_id": "R27",
"monthly_spend_gbp": 97.0,
"visits_per_month": 4,
"tenure_months": 12,
"support_tickets": 0,
"retained_next_quarter": 0,
"projected_order_value_gbp": 111.95
},
{
"customer_id": "R28",
"monthly_spend_gbp": 105.0,
"visits_per_month": 11,
"tenure_months": 17,
"support_tickets": 3,
"retained_next_quarter": 1,
"projected_order_value_gbp": 138.35
},
{
"customer_id": "R29",
"monthly_spend_gbp": 117.5,
"visits_per_month": 3,
"tenure_months": 22,
"support_tickets": 0,
"retained_next_quarter": 1,
"projected_order_value_gbp": 126.53
},
{
"customer_id": "R30",
"monthly_spend_gbp": 130.0,
"visits_per_month": 10,
"tenure_months": 27,
"support_tickets": 3,
"retained_next_quarter": 1,
"projected_order_value_gbp": 156.3
},
{
"customer_id": "R31",
"monthly_spend_gbp": 28.0,
"visits_per_month": 2,
"tenure_months": 2,
"support_tickets": 0,
"retained_next_quarter": 0,
"projected_order_value_gbp": 47.4
},
{
"customer_id": "R32",
"monthly_spend_gbp": 40.5,
"visits_per_month": 9,
"tenure_months": 7,
"support_tickets": 3,
"retained_next_quarter": 0,
"projected_order_value_gbp": 77.17
},
{
"customer_id": "R33",
"monthly_spend_gbp": 53.0,
"visits_per_month": 16,
"tenure_months": 12,
"support_tickets": 0,
"retained_next_quarter": 0,
"projected_order_value_gbp": 116.35
},
{
"customer_id": "R34",
"monthly_spend_gbp": 61.0,
"visits_per_month": 8,
"tenure_months": 17,
"support_tickets": 3,
"retained_next_quarter": 0,
"projected_order_value_gbp": 91.75
},
{
"customer_id": "R35",
"monthly_spend_gbp": 73.5,
"visits_per_month": 15,
"tenure_months": 22,
"support_tickets": 0,
"retained_next_quarter": 1,
"projected_order_value_gbp": 137.72
},
{
"customer_id": "R36",
"monthly_spend_gbp": 86.0,
"visits_per_month": 7,
"tenure_months": 27,
"support_tickets": 3,
"retained_next_quarter": 0,
"projected_order_value_gbp": 116.5
}
]
}
Code example (Python)
# DataLens.ai — sample customer dataset
customer_records = {'variable': 'customer_records', 'domain': 'Retail customer behaviour and quarterly retention', 'feature_names': ['monthly_spend_gbp', 'visits_per_month', 'tenure_months', 'support_tickets'], 'records': [{'customer_id': 'R01', 'monthly_spend_gbp': 28.0, 'visits_per_month': 2, 'tenure_months': 2, 'support_tickets': 0, 'retained_next_quarter': 0, 'projected_order_value_gbp': 44.0}, {'customer_id': 'R02', 'monthly_spend_gbp': 40.5, 'visits_per_month': 9, 'tenure_months': 7, 'support_tickets': 3, 'retained_next_quarter': 0, 'projected_order_value_gbp': 73.77}, {'customer_id': 'R03', 'monthly_spend_gbp': 53.0, 'visits_per_month': 16, 'tenure_months': 12, 'support_tickets': 0, 'retained_next_quarter': 0, 'projected_order_value_gbp': 119.75}, {'customer_id': 'R04', 'monthly_spend_gbp': 61.0, 'visits_per_month': 8, 'tenure_months': 17, 'support_tickets': 3, 'retained_next_quarter': 0, 'projected_order_value_gbp': 95.15}, {'customer_id': 'R05', 'monthly_spend_gbp': 73.5, 'visits_per_month': 15, 'tenure_months': 22, 'support_tickets': 0, 'retained_next_quarter': 1, 'projected_order_value_gbp': 134.32}, {'customer_id': 'R06', 'monthly_spend_gbp': 86.0, 'visits_per_month': 7, 'tenure_months': 27, 'support_tickets': 3, 'retained_next_quarter': 0, 'projected_order_value_gbp': 113.1}, {'customer_id': 'R07', 'monthly_spend_gbp': 94.0, 'visits_per_month': 14, 'tenure_months': 2, 'support_tickets': 0, 'retained_next_quarter': 1, 'projected_order_value_gbp': 137.7}, {'customer_id': 'R08', 'monthly_spend_gbp': 106.5, 'visits_per_month': 6, 'tenure_months': 7, 'support_tickets': 3, 'retained_next_quarter': 0, 'projected_order_value_gbp': 116.47}, {'customer_id': 'R09', 'monthly_spend_gbp': 119.0, 'visits_per_month': 13, 'tenure_months': 12, 'support_tickets': 0, 'retained_next_quarter': 1, 'projected_order_value_gbp': 155.65}, {'customer_id': 'R10', 'monthly_spend_gbp': 127.0, 'visits_per_month': 5, 'tenure_months': 17, 'support_tickets': 3, 'retained_next_quarter': 0, 'projected_order_value_gbp': 131.05}, {'customer_id': 'R11', 'monthly_spend_gbp': 29.5, 'visits_per_month': 12, 'tenure_months': 22, 'support_tickets': 0, 'retained_next_quarter': 1, 'projected_order_value_gbp': 94.53}, {'customer_id': 'R12', 'monthly_spend_gbp': 42.0, 'visits_per_month': 4, 'tenure_months': 27, 'support_tickets': 3, 'retained_next_quarter': 0, 'projected_order_value_gbp': 73.3}, {'customer_id': 'R13', 'monthly_spend_gbp': 50.0, 'visits_per_month': 11, 'tenure_months': 2, 'support_tickets': 0, 'retained_next_quarter': 0, 'projected_order_value_gbp': 91.1}, {'customer_id': 'R14', 'monthly_spend_gbp': 62.5, 'visits_per_month': 3, 'tenure_months': 7, 'support_tickets': 3, 'retained_next_quarter': 0, 'projected_order_value_gbp': 69.88}, {'customer_id': 'R15', 'monthly_spend_gbp': 75.0, 'visits_per_month': 10, 'tenure_months': 12, 'support_tickets': 0, 'retained_next_quarter': 0, 'projected_order_value_gbp': 115.85}, {'customer_id': 'R16', 'monthly_spend_gbp': 83.0, 'visits_per_month': 2, 'tenure_months': 17, 'support_tickets': 3, 'retained_next_quarter': 0, 'projected_order_value_gbp': 91.25}, {'customer_id': 'R17', 'monthly_spend_gbp': 95.5, 'visits_per_month': 9, 'tenure_months': 22, 'support_tickets': 0, 'retained_next_quarter': 1, 'projected_order_value_gbp': 130.42}, {'customer_id': 'R18', 'monthly_spend_gbp': 108.0, 'visits_per_month': 16, 'tenure_months': 27, 'support_tickets': 3, 'retained_next_quarter': 1, 'projected_order_value_gbp': 160.2}, {'customer_id': 'R19', 'monthly_spend_gbp': 116.0, 'visits_per_month': 8, 'tenure_months': 2, 'support_tickets': 0, 'retained_next_quarter': 1, 'projected_order_value_gbp': 133.8}, {'customer_id': 'R20', 'monthly_spend_gbp': 128.5, 'visits_per_month': 15, 'tenure_months': 7, 'support_tickets': 3, 'retained_next_quarter': 1, 'projected_order_value_gbp': 163.57}, {'customer_id': 'R21', 'monthly_spend_gbp': 31.0, 'visits_per_month': 7, 'tenure_months': 12, 'support_tickets': 0, 'retained_next_quarter': 0, 'projected_order_value_gbp': 69.25}, {'customer_id': 'R22', 'monthly_spend_gbp': 39.0, 'visits_per_month': 14, 'tenure_months': 17, 'support_tickets': 3, 'retained_next_quarter': 0, 'projected_order_value_gbp': 95.65}, {'customer_id': 'R23', 'monthly_spend_gbp': 51.5, 'visits_per_month': 6, 'tenure_months': 22, 'support_tickets': 0, 'retained_next_quarter': 1, 'projected_order_value_gbp': 90.63}, {'customer_id': 'R24', 'monthly_spend_gbp': 64.0, 'visits_per_month': 13, 'tenure_months': 27, 'support_tickets': 3, 'retained_next_quarter': 0, 'projected_order_value_gbp': 120.4}, {'customer_id': 'R25', 'monthly_spend_gbp': 72.0, 'visits_per_month': 5, 'tenure_months': 2, 'support_tickets': 0, 'retained_next_quarter': 0, 'projected_order_value_gbp': 87.2}, {'customer_id': 'R26', 'monthly_spend_gbp': 84.5, 'visits_per_month': 12, 'tenure_months': 7, 'support_tickets': 3, 'retained_next_quarter': 1, 'projected_order_value_gbp': 116.98}, {'customer_id': 'R27', 'monthly_spend_gbp': 97.0, 'visits_per_month': 4, 'tenure_months': 12, 'support_tickets': 0, 'retained_next_quarter': 0, 'projected_order_value_gbp': 111.95}, {'customer_id': 'R28', 'monthly_spend_gbp': 105.0, 'visits_per_month': 11, 'tenure_months': 17, 'support_tickets': 3, 'retained_next_quarter': 1, 'projected_order_value_gbp': 138.35}, {'customer_id': 'R29', 'monthly_spend_gbp': 117.5, 'visits_per_month': 3, 'tenure_months': 22, 'support_tickets': 0, 'retained_next_quarter': 1, 'projected_order_value_gbp': 126.53}, {'customer_id': 'R30', 'monthly_spend_gbp': 130.0, 'visits_per_month': 10, 'tenure_months': 27, 'support_tickets': 3, 'retained_next_quarter': 1, 'projected_order_value_gbp': 156.3}, {'customer_id': 'R31', 'monthly_spend_gbp': 28.0, 'visits_per_month': 2, 'tenure_months': 2, 'support_tickets': 0, 'retained_next_quarter': 0, 'projected_order_value_gbp': 47.4}, {'customer_id': 'R32', 'monthly_spend_gbp': 40.5, 'visits_per_month': 9, 'tenure_months': 7, 'support_tickets': 3, 'retained_next_quarter': 0, 'projected_order_value_gbp': 77.17}, {'customer_id': 'R33', 'monthly_spend_gbp': 53.0, 'visits_per_month': 16, 'tenure_months': 12, 'support_tickets': 0, 'retained_next_quarter': 0, 'projected_order_value_gbp': 116.35}, {'customer_id': 'R34', 'monthly_spend_gbp': 61.0, 'visits_per_month': 8, 'tenure_months': 17, 'support_tickets': 3, 'retained_next_quarter': 0, 'projected_order_value_gbp': 91.75}, {'customer_id': 'R35', 'monthly_spend_gbp': 73.5, 'visits_per_month': 15, 'tenure_months': 22, 'support_tickets': 0, 'retained_next_quarter': 1, 'projected_order_value_gbp': 137.72}, {'customer_id': 'R36', 'monthly_spend_gbp': 86.0, 'visits_per_month': 7, 'tenure_months': 27, 'support_tickets': 3, 'retained_next_quarter': 0, 'projected_order_value_gbp': 116.5}]}
# DataLens.ai example — customer retention and order forecasting.
# The sample customer records are included when you copy input + code + test.
import numpy as np
from sklearn.ensemble import BaggingRegressor
# Select named customer attributes rather than anonymous numbers.
feature_names = customer_records["feature_names"]
X = np.array([[customer[feature] for feature in feature_names]
for customer in customer_records["records"]], dtype=float)
# Create the observed target and fit this ensemble estimator.
y = np.array([customer["projected_order_value_gbp"] for customer in customer_records["records"]])
model = BaggingRegressor(n_estimators=9, random_state=7)
model.fit(X, y)
# Predict from the same illustrative dataset (not an accuracy benchmark).
predictions = model.predict(X)
assert len(predictions) == len(y)
assert np.isfinite(predictions).all()
assert predictions.min() >= 0
# Assertions passed: the algorithm ran successfully.
print("Expected output verified")
# DataLens.ai example — customer retention and order forecasting.
# The sample customer records are included when you copy input + code + test.
import numpy as np
from sklearn.ensemble import BaggingRegressor
# Select named customer attributes rather than anonymous numbers.
feature_names = customer_records["feature_names"]
X = np.array([[customer[feature] for feature in feature_names]
for customer in customer_records["records"]], dtype=float)
# Create the observed target and fit this ensemble estimator.
y = np.array([customer["projected_order_value_gbp"] for customer in customer_records["records"]])
model = BaggingRegressor(n_estimators=9, random_state=7)
model.fit(X, y)
# Predict from the same illustrative dataset (not an accuracy benchmark).
predictions = model.predict(X)
assert len(predictions) == len(y)
assert np.isfinite(predictions).all()
assert predictions.min() >= 0
# Assertions passed: the algorithm ran successfully.
print("Expected output verified")