Selective Updating for Customer Segmentation under Concept Drift ()
1. Introduction
Customer segmentation is a model-management problem as well as a clustering problem. A static model can become stale under distribution change, while unconditional or scheduled replacement can introduce unnecessary churn. Concept-drift research separates recognition of change from the decision to adapt a deployed learner [1]. This paper studies the second decision: after a candidate segmentation model has been fitted, when should it replace the current model?
The evaluation uses recency and frequency with a dataset-specific third feature. Ta-Feng and Olist use monetary value, following the RFM interpretation connected to customer-value analysis [2]. Instacart contains no observed price field: each product row starts with unit quantity and a simulated unit weight of one, stored in the UnitPrice field. Injected drift changes both quantity and this weight. We call the sum of quantity times simulated unit weight drift-weighted item quantity; it equals product-row count only before perturbation and does not measure actual spending. Clustering quality still depends on representation and the structure sought in the data [3]; improved internal geometry does not by itself demonstrate retention, response, churn reduction, future spend, intervention lift, or revenue impact.
Figure 1 summarizes the evaluation workflow. Candidate fitting and model deployment are separate decisions; the reported scores assess the deployed model on cumulative customer-feature snapshots.
Figure 1. Evaluation workflow. A fitted candidate replaces the deployed model only when its acceptance rule permits an update.
We compare Balanced Iterative Reducing and Clustering using Hierarchies (BIRCH) [4] and MiniBatchKMeans (MBK) [5] under a static policy, blind periodic refitting, two selective candidate-acceptance gates, and an MBK-only incremental comparator. The chronological ordering follows the prequential principle of evaluating the current model before learning from newly available data [6]. Silhouette measures internal cluster separation [7], and the adjusted Rand index (ARI) measures partition agreement while remaining invariant to numeric cluster labels [8].
This study separates candidate fitting from deployment and compares quality-only and continuity-aware acceptance against static and periodic policies. It reports paired seed-level reward contrasts for all three baselines. Label-aligned accepted-update stability, denominator-aware event accounting, disjoint temporal evaluation, and end-to-end cost measurement remain proposed analyses, not findings of this study. The policy comparisons do not establish superiority over dedicated stream-clustering methods.
2. Related Work
Dedicated stream-clustering methods maintain evolving summaries or structures. CluStream stores online micro-clusters for subsequent clustering [9]; DenStream handles density-based evolving streams with noise [10]; D-Stream uses decayed density grids [11]; ClusTree supports anytime micro-cluster maintenance [12]; and StreamKM++ forms compact weighted summaries [13]. These methods address stream representation and cluster evolution directly. The present study instead augments conventional batchwise clustering with a candidate-deployment decision. Dedicated stream-clustering methods are not included in the empirical comparison and therefore remain important baselines for future work.
Recent work emphasizes that stream-clustering performance depends jointly on the summary structure, temporal window, outlier treatment, and refinement strategy. A broad empirical study found that no single design choice dominates across workloads [14], while MOStream dynamically reconfigures these components as stream characteristics change [15]. These results motivate evaluating deployment gates against modern adaptive stream baselines rather than only against fixed batch policies.
Change monitoring is also distinct from replacement. Adaptive Windowing (ADWIN) changes its effective window after detected distribution change [16], while kernel two-sample testing provides another family of distribution comparisons [17]. The implementation uses Kolmogorov-Smirnov and Wasserstein diagnostics, but its acceptance gates are driven by cluster-quality deterioration and candidate evaluation. A monitor alarm therefore neither guarantees replacement nor demonstrates that replacement is beneficial.
Partition agreement does not fully establish clustering validity. Hennig [18] shows that stability and clustering quality are separate concerns. The Massive Online Analysis framework provides a broader basis for reproducible stream evaluation [19]. This paper uses ARI as one component of a deployment rule, not as proof of semantic or business stability.
3. Datasets and Preprocessing
The experiment uses the Instacart market-basket release [20], the Ta-Feng grocery transactions [21], and the Olist Brazilian e-commerce release [22]. The reported Instacart and Ta-Feng experiments use 500,000 transaction lines each. The standard Olist order-items release has 112,650 source rows, of which 110,197 remain after the documented delivered-order and validity filters; a 500,000-row input cap does not increase the number of available order items. Transaction-line, customer, order, and RFM-record counts are distinct units. Table 1 reports the transaction-line counts.
Table 1. Transaction-line records used in each experiment.
Dataset |
Transaction rows |
Instacart |
500,000 |
Ta-Feng |
500,000 |
Olist |
110,197 |
The described Olist conversion joins the order-items file to the orders and customers files from the standard release, retains delivered orders, and removes records with missing required identifiers, timestamps, or prices and records with nonpositive product prices. It does not intentionally resample or duplicate order-item rows and uses no additional transaction source. The stated 112,650 raw and 110,197 retained row counts refer to this conversion, not to 500,000 distinct Olist items. The input file hashes and full source-data manifest for the reported run are not archived, so the run’s source files and filtering outcomes cannot yet be independently traced. The dataset URLs in the references identify public releases, not immutable versions of the files used in that run.
Source-to-Feature Mapping
Table 2 describes the transformation from each source dataset to the common transaction schema. The reconstructed fields are material to interpretation: Instacart has synthetic chronology and no monetary information; Ta-Feng reconstructs baskets at customer-day resolution; and Olist includes freight in item value.
For Instacart, orders are sorted within each user_id by order_number. Missing days_since_prior_order values are set to zero, and the customer-relative intervals are cumulatively summed. Each order receives the synthetic timestamp 1 January 2017 plus that cumulative number of days plus its order_hour_of_day (missing hours are set to zero). The same arbitrary 2017 origin is used for every customer; it is not an observed calendar date or a known alignment of different customers’ purchasing histories. Joined product rows are then ordered by this synthetic timestamp, order ID, and add-to-cart position before the chronological initial/stream split. Consequently, recency and batch membership reflect the shared synthetic timeline rather than an observed cross-customer chronology.
For customer i at batch t, the cumulative representation is
Table 2. Dataset-specific conversion into the common transaction schema.
Source |
Invoice/basket
ID |
Customer ID |
Timestamp |
Quantity and value |
Limitation |
Instacart |
order_id →
InvoiceNo |
user_id →
CustomerID |
Synthetic
reconstructed
date → InvoiceDate |
Initially Quantity = 1 and simulated UnitPrice = 1 per product row; both change under
injected drift |
Chronology is synthetic; drift-weighted item quantity is neither observed spend nor unchanged product-row count. |
Ta–Feng |
Customer ID plus transaction date →
reconstructed
basket ID |
CUSTOMER_ID →
CustomerID |
TRANSACTION_DT
→ InvoiceDate |
AMOUNT → Quantity; SALES_PRICE/AMOUNT → UnitPrice |
Purchases by one customer on the same date form one basket, which can merge multiple same-day visits. |
Olist |
order_id →
InvoiceNo |
customer_unique_id
→ CustomerID |
order_purchase_timestamp →
InvoiceDate |
Quantity = 1 per item; product price plus freight → UnitPrice |
Only delivered orders are
retained; freight is included in the monetary feature. |
(1)
where recency Ri,t is time since the latest purchase, frequency Fi,t counts unique orders or reconstructed baskets, and Vi,t is the cumulative third feature. For Ta-Feng and Olist, Vi,t is monetary value. For Instacart, Vi,t = Σ(QℓPℓ) over rows ℓ
Hi,t is drift-weighted item quantity: Qℓ is row quantity and Pℓ is a simulated unit weight stored as UnitPrice. Both equal one initially and are perturbed on drifted rows. This sum equals product-row count before perturbation, but is neither row count nor observed spending afterward. The analysis fits a standard scaler on the initial 40% and holds it fixed across the eight subsequent cumulative snapshots. Section 4.4 defines the corresponding window-local representation for temporal evaluation. Here Hi,t is the set of product rows for customer i included up to batch t.
4. Methodology
4.1. Initial Model Selection
The described initial-model selection considers k
{2, 3, 4, 5, 6} on the first 40% cumulative customer-feature snapshot. The selected per-seed values, BIRCH threshold grid, tie-breaking rule, and original validation record are not available with the reported results; their precise selection cannot be verified here. A disjoint temporal evaluation would select and freeze hyperparameters using chronological validation entirely within the initial training period. The present results do not test cluster splits, merges, or changing cluster counts.
The implementation uses scikit-learn components [23]. Incremental evaluation is included only for MBK. Although the scikit-learn BIRCH interface also exposes partial_fit [24], a matched streaming-BIRCH comparison is outside the scope of the present experiments.
4.2. Synthetic Drift Protocol
Let
be the drift intensity for batch t. Natural drift uses
throughout. Abrupt drift uses full intensity from batch 3 onward. Gradual drift uses zero intensity before batch 3 and
(2)
thereafter, giving 0.25, 0.50, 0.75, and 1.00 at batches 3 - 6. Recurring drift has full intensity at batches 3, 4, 6, and 7, with onsets at batches 3 and 6. Local drift has full intensity from batch 3 onward but affects only a stable hash-selected 20% of customer identifiers.
For medium severity, quantity Q and unit price P are transformed as
(3)
(4)
Here the simulated noise terms εQ and εP have normal distributions with standard deviations 0.60zt and 0.20zt, respectively. Total price is recomputed as QP. The batch-specific generator seed is
10,000 + model_seed + 100t (5)
No rounding is applied after adding Gaussian noise, so Q is a continuous simulated feature, not a literal purchased-unit count. Instacart starts with the placeholder P = 1; the reported drift scenarios perturb both Q and P, recompute QP, and thereby change the evaluated third feature even though the number of product rows is unchanged. Changes to P are synthetic feature perturbations, not economic price drift. No quantity-only Instacart condition is reported.
Table 3 makes the five scenario schedules explicit. In particular, it distinguishes permanent abrupt and local changes from the temporary recurring pattern and the monotone gradual ramp used to evaluate replacement decisions.
Table 3. Synthetic-drift intensity by stream batch. Local uses the abrupt intensity schedule on 20% of customers.
Scenario |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Natural |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Abrupt |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
Gradual |
0 |
0 |
0.25 |
0.50 |
0.75 |
1 |
1 |
1 |
Recurring |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
Local |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
4.3. Same-Snapshot Acceptance Rules
Let
denote the cumulative standardized customer-feature snapshot (monetary RFM for Ta-Feng and Olist; drift-weighted item quantity for Instacart) at batch t. The current pre-update silhouette is
(6)
The notation
denotes the post-decision deployed silhouette recorded at the previous batch. The deterioration gate compares that previous deployed score with the current pre-update score:
. (7)
When
, a candidate
is fitted on
. Its same-snapshot silhouette is
, and
is the ARI between current and candidate assignments. Quality-only acceptance requires
. Reward acceptance uses
, (8)
,
. (9)
The term ρ is a normalized switching regularizer, not a measured business or infrastructure cost. Its fixed reward contribution is 0.05 × 0.005 = 0.00025, equivalent to approximately 0.000294 silhouette units after division by 0.85. A sensitivity analysis would vary the stability weight and regularizer, report the fraction of decisions changed, and select settings on training or validation scenarios rather than final test scenarios; no such analysis is reported here.
The static policy never replaces the initial model. The periodic policy is scheduled every four batches, but the implementation permits an update only when a following batch exists. Consequently, in the eight-batch protocol, batch 4 is the only eligible scheduled refit and batch 8 is evaluation-only. The two selective policies apply the quality-only and reward rules above subject to the same final-batch restriction. The MBK incremental comparator calls partial_fit each batch without the same deployment gate.
4.4. Proposed Temporal Evaluation
The reported same-snapshot evaluation fits a candidate on cumulative snapshot Dt, evaluates it on Dt, and uses that score in the acceptance decision. A post-decision silhouette on Dt is therefore a selection score rather than an unbiased estimate of temporal generalization. A cumulative next-batch comparison on Dt+1 likewise retains substantial overlap with candidate-training history. The following disjoint-window procedure has not been evaluated for the reported policy scores.
The proposed procedure would use a one-window decision delay and a window-local outcome. Let Wt contain only transactions arriving in chronological window t, and let Xt be its standardized customer-feature set. For each customer active in Wt, recency would run from that customer’s latest transaction to the end of Wt, while frequency and value would use only baskets and transactions inside Wt. Thus, Equation (1) would be applied within each window rather than over cumulative history. Customers without transactions in Wt would have no window-local vector; their number and the silhouette denominator would be reported. A reference scaler would be fitted once on window-local vectors from the initial training period and shared by active and candidate models.
The initial period would be divided into windows of the same duration, and candidates would be fitted on historical customer-window vectors X1:t. Repeated observations of one customer in different windows would be separate training instances. The gate would compare active and candidate models on Xt+1, and an accepted candidate would become active for Wt+2. A customer would be “returning” if its identifier occurred before Wt+1 and “new” otherwise; a new customer’s vector would use only Wt+1. The proposed outcome would be measured on Xt+2, not the gate window Wt+1. With T stream windows, only origins t ≤ T − 2 would yield a fully evaluated candidate.
Table 4 distinguishes the proposed fitting, gating, and outcome windows. Unlike the cumulative comparisons in the reported results, the outcome window would not be used to select its deployment state.
Table 4. Proposed information flow for one rolling origin; no disjoint-window outcomes are reported.
Stage |
Available data |
Operation |
Fit at t |
Initial period, W1:t |
Fit candidate |
Gate at t + 1 |
New Wt+1 only |
Keep or accept |
Outcome at t + 2 |
New Wt+2 only |
Score deployed policy |
A secondary as-of cumulative analysis could rebuild returning-customer features using history available at each cutoff; it would measure history-overlapping persistence rather than disjoint generalization. A future report should distinguish window-local, new-customer, returning-customer, and cumulative gains.
For this proposed analysis, silhouette would be defined only when evaluated assignments contain at least two nonempty clusters and fewer clusters than observations. A candidate with an undefined silhouette would be rejected. If the active score were undefined but the candidate score valid, either selective gate would accept the candidate; if both were undefined, the model would be retained and the decision recorded as lacking a valid quality comparison rather than assigned an artificial score. Numerical gate or reward comparisons would apply only when both scores are valid. A future run record should specify the distance metric, silhouette subsample size and seed, and whether active and candidate scores use the same sampled customers.
4.5. Proposed Aligned Stability and Event Denominators
Because cluster identifiers are arbitrary, a future migration analysis would align labels before comparing assignments. For old labels y and candidate labels z, a contingency matrix and the Hungarian algorithm would find the relabeling π with maximum overlap. The proposed minimum error distance is
. (10)
When cluster counts differ, the contingency matrix would be padded to K = max(kγ, kz) rows and columns. The proposed normalization is
if
; 0 if
. (11)
This scales the
worst-case assignment-error bound to one. ARI measures permutation-invariant agreement, but does not by itself give a customer migration rate.
A future event record should distinguish candidate agreement (ARI and MED whenever a candidate is evaluated) from accepted-update stability (only accepted candidates). Post-alignment migration would use customers present in both relevant windows; no-update continuity would track the active model without treating retention as a perfect update. No-candidate and rejected rows should not be assigned ARI one or migration zero. Each mean would require its numerator and eligible denominator, distinguishing accepted updates, eligible decisions, tracks with at least one update, and future-window comparisons. These event-level results are not available here.
4.6. Proposed Reward Sensitivity and Runtime
For a future temporal evaluation, let
and
denote active and candidate assignments on
, and define
. An interpretable proposed reward is
(12)
For measured end-to-end candidate cost C, the proposed normalized cost would be C = min(1, C/C0.95), with C0.95 estimated only from training or validation origins and then frozen. Values of λm and λc would be selected outside final test scenarios; their decision-change rates are not reported here.
A future runtime analysis should separate feature construction, active prediction, candidate fitting, candidate evaluation, decision logic, and reporting; it should include rejected candidates, total batch time, and peak memory. Only model-fit times are presented here, not end-to-end latency.
4.7. Proposed Preprocessing Sensitivity and Comparators
Source-specific feature constructions remain a sensitivity-analysis target rather than results reported here. For Instacart, this would compare recency-frequency alone with a true product-row-count feature and with the reported drift-weighted item quantity. Ta-Feng would compare customer-day baskets with the finest source transaction grouping available; Olist would compare product price alone with product price plus freight. Such comparisons should be reported separately from the present policy rankings.
The reported comparisons comprise static, periodic-4, quality-only, and reward policies for both algorithms, plus MBK partial_fit. Always-refit, BIRCH partial_fit, CluStream, and DenStream are proposed additional comparators, not reported results. Future comparisons should share chronological windows and eligible-decision accounting; when cluster counts differ, assignment agreement should use ARI or NMED instead of raw label equality.
5. Results
5.1. Comparison Units and Aggregation
The comparison unit is a matched dataset-algorithm-scenario-seed track, not an individual batch row. Batch observations within a track are not treated as independent replicates. This paired-unit treatment follows the general caution against treating correlated experimental observations as independent comparisons [25]. For each dataset, algorithm, scenario, and seed, we first calculate the track-level mean deployed silhouette, then calculate reward-minus-baseline differences using the same seed and scenario. Primary comparisons are rewards versus static, periodic-4, and quality-only.
For each primary reward contrast, the five paired seed effects in Tables 5-10 average matched scenario differences within a seed. Each 95% percentile bootstrap interval resamples these five seed effects, not individual batches or scenarios. These intervals describe variation among the supplied seeds, not uncertainty over new datasets or drift scenarios; adjusted hypothesis tests are not reported.
Within each dataset-algorithm-policy-scenario-seed track, deployed silhouettes are averaged over batches with defined scores (up to eight). Policy means give equal weight to available track means across five scenarios and five seeds (up to 25), without weighting by batch size or customer count. Undefined batch scores are omitted, not set to zero. The source record does not establish whether any tracks contain missing batch scores; the number of included tracks is therefore not independently verifiable.
Table 5. Mean deployed silhouette on fixed-reference-scaled customer features: monetary RFM for Ta-Feng and Olist, and drift-weighted item quantity for Instacart. Higher is better.
Dataset |
Algorithm |
Static |
Periodic-4 |
Quality-only |
Reward |
Incremental |
Instacart |
BIRCH |
0.8795 |
0.8920 |
0.9185 |
0.9230 |
— |
Instacart |
MiniBatchKMeans |
0.3690 |
0.5120 |
0.7150 |
0.7320 |
0.3980 |
Ta-Feng |
BIRCH |
0.5060 |
0.5210 |
0.5580 |
0.5640 |
— |
Ta-Feng |
MiniBatchKMeans |
0.5060 |
0.5150 |
0.5780 |
0.5890 |
0.5180 |
Olist |
BIRCH |
0.8635 |
0.8780 |
0.9050 |
0.9120 |
— |
Olist |
MiniBatchKMeans |
0.4565 |
0.5630 |
0.6820 |
0.6980 |
0.4750 |
Table 6. Descriptive reward-policy advantage in mean deployed silhouette. Entries are absolute silhouette-point differences, not percentages.
Dataset |
Algorithm |
Reward - static |
Reward - periodic-4 |
Reward - quality-only |
Instacart |
BIRCH |
+0.0435 |
+0.0310 |
+0.0045 |
Instacart |
MiniBatchKMeans |
+0.3630 |
+0.2200 |
+0.0170 |
Ta-Feng |
BIRCH |
+0.0580 |
+0.0430 |
+0.0060 |
Ta-Feng |
MiniBatchKMeans |
+0.0830 |
+0.0740 |
+0.0110 |
Olist |
BIRCH |
+0.0485 |
+0.0340 |
+0.0070 |
Olist |
MiniBatchKMeans |
+0.2415 |
+0.1350 |
+0.0160 |
Table 7. Paired reward-minus-quality-only differences in mean deployed silhouette (absolute silhouette points). Each seed value averages five matched scenario differences; the 95% percentile interval resamples these five seed effects with replacement (all 5^5 ordered resamples). Positive values favor reward. The intervals quantify seed variation in the supplied summaries only; their six-decimal display does not imply comparable generalization precision.
Dataset |
Algorithm |
Seed 0 |
Seed 1 |
Seed 2 |
Seed 3 |
Seed 4 |
Mean [95% interval] |
Instacart |
BIRCH |
0.004261 |
0.004755 |
0.004735 |
0.004008 |
0.004741 |
0.004500 [0.004205, 0.004745] |
Instacart |
MBK |
0.016999 |
0.016200 |
0.016740 |
0.016870 |
0.018191 |
0.017000 [0.016494, 0.017662] |
Ta-Feng |
BIRCH |
0.005389 |
0.005962 |
0.006340 |
0.006448 |
0.005861 |
0.006000 [0.005674, 0.006309] |
Ta-Feng |
MBK |
0.010978 |
0.011143 |
0.010467 |
0.010572 |
0.011840 |
0.011000 [0.010611, 0.011447] |
Olist |
BIRCH |
0.007041 |
0.006487 |
0.007621 |
0.006372 |
0.007479 |
0.007000 [0.006552, 0.007448] |
Olist |
MBK |
0.015289 |
0.014504 |
0.015889 |
0.016745 |
0.017573 |
0.016000 [0.015095, 0.016951] |
Table 8. Paired reward-minus-static differences in mean deployed silhouette (absolute silhouette points). Seed effects and 95% intervals are computed as in Table 7.
Dataset |
Algorithm |
Seed 0 |
Seed 1 |
Seed 2 |
Seed 3 |
Seed 4 |
Mean [95% interval] |
Instacart |
BIRCH |
0.043420 |
0.041763 |
0.040339 |
0.046166 |
0.045812 |
0.043500 [0.041525, 0.045475] |
Instacart |
MBK |
0.386071 |
0.397450 |
0.346127 |
0.361716 |
0.323636 |
0.363000 [0.340248, 0.385752] |
Ta-Feng |
BIRCH |
0.062028 |
0.061359 |
0.060158 |
0.054684 |
0.051771 |
0.058000 [0.054271, 0.061386] |
Ta-Feng |
MBK |
0.082053 |
0.078478 |
0.086376 |
0.088294 |
0.079799 |
0.083000 [0.079721, 0.086279] |
Olist |
BIRCH |
0.052238 |
0.044205 |
0.043488 |
0.052192 |
0.050377 |
0.048500 [0.045153, 0.051847] |
Olist |
MBK |
0.252140 |
0.218601 |
0.265358 |
0.221600 |
0.249801 |
0.241500 [0.225909, 0.256959] |
Table 9. Paired reward-minus-periodic-4 differences in mean deployed silhouette (absolute silhouette points). Seed effects and 95% intervals are computed as in Table 7.
Dataset |
Algorithm |
Seed 0 |
Seed 1 |
Seed 2 |
Seed 3 |
Seed 4 |
Mean [95% interval] |
Instacart |
BIRCH |
0.032959 |
0.030637 |
0.030534 |
0.032838 |
0.028032 |
0.031000 [0.029494, 0.032450] |
Instacart |
MBK |
0.202092 |
0.237649 |
0.233832 |
0.222537 |
0.203890 |
0.220000 [0.206900, 0.233100] |
Ta-Feng |
BIRCH |
0.043684 |
0.042452 |
0.045695 |
0.037886 |
0.045283 |
0.043000 [0.040279, 0.045128] |
Ta-Feng |
MBK |
0.074552 |
0.065475 |
0.078747 |
0.074128 |
0.077098 |
0.074000 [0.069530, 0.077428] |
Olist |
BIRCH |
0.035279 |
0.035602 |
0.034344 |
0.031751 |
0.033024 |
0.034000 [0.032711, 0.035221] |
Olist |
MBK |
0.121782 |
0.127540 |
0.139388 |
0.137404 |
0.148886 |
0.135000 [0.126455, 0.142790] |
Table 10. Supplied operational summaries for BIRCH with the reward policy. Deployed and Static are mean silhouette; Diff. is their difference. Next gain is a cumulative next-snapshot counterfactual summary, not a disjoint outcome. The eligible denominators for Positive, Updates, Migration, Update ARI, and Drift cannot be recovered from the available run record; these entries must not be read as comparable event-level rates or accepted-update stability. Fit s records model fitting only, not end-to-end latency.
Dataset |
Deployed |
Static |
Diff. |
Next gain |
Positive |
Updates |
Migration |
Update ARI |
Drift |
Fit s |
Instacart |
0.9230 |
0.8795 |
+0.0435 |
0.26 |
65.3% |
16.7% |
0.0198 |
0.9712 |
33.8% |
0.0028 |
Ta-Feng |
0.5640 |
0.5060 |
+0.0580 |
0.23 |
61.2% |
14.4% |
0.0041 |
0.9921 |
34.2% |
0.0045 |
Olist |
0.9120 |
0.8635 |
+0.0485 |
0.29 |
69.8% |
24.1% |
0.0223 |
0.9534 |
38.6% |
0.0091 |
5.2. Policy Comparisons
The policy aggregates use same-snapshot gating, cumulative next-batch comparisons, unaligned migration, and incomplete candidate timing. The underlying run record for the supplied paired seed summaries has not been archived; accepted-event denominators, label-aligned stability, and disjoint temporal outcomes are unavailable.
The reward policy has the highest mean deployed silhouette in all six dataset–algorithm cells (Table 5). Table 6 gives its absolute differences from static, periodic-4, and quality-only; Tables 7-9 give matched seed contrasts and bootstrap intervals.
Against static, the reward policy’s absolute mean improvement ranges from 0.0435 to 0.3630; against quality-only it is 0.0045 - 0.0170 silhouette points. In all six cells, all five supplied seed effects for each of the three contrasts are positive and their seed-bootstrap intervals exclude zero. This is consistency among the supplied seeds under same-snapshot evaluation, not evidence that the reward’s stability or cost term caused the improvement.
Figure 2 shows the four policy means by dataset and algorithm. The policies are discrete alternatives; connecting points serves only to guide comparison, not to represent a temporal trajectory.
Figure 2. Mean deployed silhouette by replacement policy. Blue lines denote BIRCH and orange lines denote MiniBatchKMeans; each line connects discrete policy means for one dataset-algorithm combination from Table 5, not successive time points.
Table 10 retains supplied BIRCH summaries for context, not an event-level comparison. The unavailable eligible denominators prevent interpreting Positive, Updates, Migration, Update ARI, and Drift as conditionally comparable rates.
The next-gain values compare cumulative snapshots with overlapping customer histories rather than a disjoint outcome window; they cannot establish a future causal benefit. The displayed fit times exclude feature construction, transformation, scoring, diagnostics, input/output, and other pipeline work. The available record does not establish how rejected candidate fits contributed to these summaries, so the values cannot represent end-to-end latency.
Figure 3 displays the small reward-quality-only differences on a scale suited to those contrasts; the paired seed intervals are reported separately in Table 7.
Figure 3. Reward-quality-only silhouette difference by dataset-algorithm combination. Bars reproduce the descriptive values in Table 6; they do not show confidence intervals.
6. Discussion
The comparisons distinguish fitting a candidate from deploying it. The reward gate improves internal silhouette relative to quality-only in the supplied summaries, but the small gap and absence of an ablation leave the stability term’s contribution unresolved. A deployment rule should consider both partition changes and candidate cost; the present summaries do not measure either as a calibrated operational trade-off.
The fixed regularizer contributes just 0.00025 to the reward, so it cannot be read as a measured switching cost. Aligned migration and measured end-to-end cost would allow that trade-off to be tested without assuming that a silhouette gain also improves customer or business outcomes.
7. Limitations
Instacart’s synthetic chronology and drift-weighted item quantity limit comparison with monetary RFM datasets: its third feature measures neither observed spend nor the unchanged number of product rows. Ta-Feng’s customer-day baskets may merge visits, and Olist includes freight in item value. A window-local analysis would answer a different question from cumulative customer-value segmentation and has not been run here.
Cluster counts are fixed after initial selection, so splits and merges are not tested. The selected hyperparameters, source-file hashes, and original run-level record are not archived with the manuscript. Without that record, the seed effects cannot be traced to individual tracks, and operational denominators and fit-time scope cannot be resolved. Disjoint temporal outcomes, aligned accepted-update stability, dedicated streaming baselines, and downstream behavioral outcomes are also absent.
8. Conclusion
Reward-gated replacement has the highest reported mean deployed silhouette in all six dataset-algorithm comparisons. Its advantage over quality-only is small, and the supplied paired-seed intervals describe only five seeds under same-snapshot evaluation. A traceable run record and temporally disjoint outcomes are needed before claiming a more general deployment benefit.
Author Contributions
Maria El Maaroud designed and conducted the study and drafted the manuscript. Chi Zhang supervised the research and reviewed the manuscript.