{
  "id": 704528,
  "title": "WiDS Global Datathon 2026 - Solution Kagglettes",
  "content": "<p><strong>Team Name:</strong> Kagglettes</p>\n<p><strong>Team Members:</strong> Ilona Le Drogoff &amp; Mellissa Hafis</p>\n<p><strong>Emails:</strong> ild8@icloud.com, <a href=\"mailto:mellimellissa109@gmail.com\">mellimellissa109@gmail.com</a></p>\n<p><strong>Private Leaderboard Score:</strong> 0.96600</p>\n<p><strong>Overview</strong></p>\n<p>Our solution predicts the probability that a wildfire will threaten an evacuation zone at four time horizons (12, 24, 48, and 72 hours) using only the first five hours of data after each fire's initial perimeter observation.\nWe framed the problem as right-censored survival analysis: some fires hit an evacuation zone within the 72-hour window (event = 1), others did not (event = 0, censored). The final solution is a weighted ensemble of four survival models, with blend weights locked to our best leaderboard submission.</p>\n<p><strong>Key Insight</strong></p>\n<p>The single most important observation was that fires split cleanly into two behavioral regimes based on their distance to the nearest evacuation zone centroid. Fires within 5 km behaved fundamentally differently from fires farther out: near-zone fires were primarily driven by closing speed and radial growth, while far-zone fires depended more on directional alignment and the threat score. Any model that ignored this split was leaving performance on the table.</p>\n<p><strong>Feature Engineering</strong></p>\n<p>Rather than broad feature expansion, we focused on a compact set of physics-grounded features:</p>\n<ul>\n<li>Distance transforms : log, inverse, square, cube, and percentile rank of distance, to give the models flexibility in how they encode proximity.</li>\n<li>ETA features : estimated time of arrival using raw closing speed, and a second estimate using effective closing speed (closing speed + radial growth).</li>\n<li>Threat score: alignment × closing speed / log(distance), capturing directional urgency in a single number.</li>\n<li>Zone-stratified ranks:each fire's closing speed (near zone) or threat score (far zone) ranked against the training distribution of its zone, not the whole dataset.</li>\n<li>Temporal features: summer and afternoon flags, as wildfire behavior shifts significantly with season and time of day.</li>\n</ul>\n<p>Columns that added noise without improving the score (centroid displacement, projected advance, relative growth) were dropped.</p>\n<p><strong>Models</strong></p>\n<p>The final ensemble combined four survival models, each trained with multi-seed, 5-fold cross-validation and averaged across both seeds and folds:</p>\n<ul>\n<li><strong>1. Gradient Boosting Survival Analysis (GBSA)</strong>\nOur strongest standalone model, carrying ~73 - 82% of the blend weight for near-zone fires. We used 6 configurations varying learning rate, tree depth, subsample rate, and leaf size, crossed with 20 random seeds,600 models in total. Stronger regularization (larger min_samples_leaf) was critical given n=221.</li>\n<li><strong>2. Cox Proportional Hazards (CoxPH)</strong>\nA regularized linear survival model trained on a curated 19-feature subset. Features were standardized before training. We swept 6 regularization strengths (α from 0.01 to 2.0) across 10 seeds. CoxPH contributed 12–25% of the blend, performing especially well for far-zone fires where the distance-hazard relationship is closer to linear.</li>\n<li><strong>3. Random Survival Forest (RSF)</strong>\nAdded model diversity and robustness. Three configurations varying leaf size and feature subsampling, crossed with 8 seeds. Lower weight (~2 - 6%) but useful for capturing non-linear interactions that GBSA misses.</li>\n<li><strong>4. Zone-Split LightGBM Calibrators</strong>\nBinary classifiers trained separately for near and far zones at 24h and 48h horizons, using IPCW (Inverse Probability of Censoring Weighting) to correct for censoring bias. Regularization was intentionally heavy given the small zone-level sample sizes. IPCW weights were computed on the full training set rather than per-fold for stability.</li>\n</ul>\n<p><strong>Distance-Stratified Ensemble</strong></p>\n<p>We split all fires into two zones using a hard threshold of 5,000 meters. Near-zone and far-zone fires received entirely separate blend weights at each horizon. This improved performance substantially because:</p>\n<ul>\n<li>Near fires: GBSA dominates, LGB provides supplementary calibration.</li>\n<li>Far fires: GBSA and Cox share the weight more evenly, LGB contributes more at 48h.</li>\n</ul>\n<p>The 12h far-zone prediction used GBSA only (weight = 1.0), because the LGB calibrator was too unstable on the small near-zone sample at this short horizon.</p>\n<p><strong>Blend Weights</strong></p>\n<p>Weights were determined by leaderboard performance across earlier versions and then locked. With only n=221 training samples, any automated weight search produces fewer than 30 samples per fold per zone, not enough signal to trust. We deliberately avoided re-sweeping weights in the final version to prevent noise-fitting.</p>\n<p>Final locked weights : </p>\n<table>\n<thead>\n<tr>\n<th>Horizon</th>\n<th></th>\n<th>Zone</th>\n<th></th>\n<th>GBSA</th>\n<th></th>\n<th>Cox</th>\n<th></th>\n<th>RSF</th>\n<th></th>\n<th>LGB</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>12h</td>\n<td></td>\n<td>Near</td>\n<td></td>\n<td>0.76</td>\n<td></td>\n<td>0.12</td>\n<td></td>\n<td>0.02</td>\n<td></td>\n<td>0.1</td>\n</tr>\n<tr>\n<td>24h</td>\n<td></td>\n<td>Near</td>\n<td></td>\n<td>0.82</td>\n<td></td>\n<td>0.14</td>\n<td></td>\n<td>0.02</td>\n<td></td>\n<td>0.02</td>\n</tr>\n<tr>\n<td>48h</td>\n<td></td>\n<td>Near</td>\n<td></td>\n<td>0.73</td>\n<td></td>\n<td>0.16</td>\n<td></td>\n<td>0.03</td>\n<td></td>\n<td>0.08</td>\n</tr>\n<tr>\n<td>24h</td>\n<td></td>\n<td>Far</td>\n<td></td>\n<td>0.62</td>\n<td></td>\n<td>0.25</td>\n<td></td>\n<td>0.06</td>\n<td></td>\n<td>0.07</td>\n</tr>\n<tr>\n<td>48h</td>\n<td></td>\n<td>Far</td>\n<td></td>\n<td>0.35</td>\n<td></td>\n<td>0.22</td>\n<td></td>\n<td>0.06</td>\n<td></td>\n<td>0.37</td>\n</tr>\n</tbody>\n</table>\n<p><strong>72h Post-Processing</strong>\nAll 72h predictions were set to 1.0. This consistently improved leaderboard performance because essentially all fires in this dataset reach an evacuation zone within 72 hours, and any model uncertainty at that horizon only hurts calibration.</p>\n<p><strong>Monotonicity Enforcement</strong>\nFinal predictions were clipped to [0, 1] and constrained so that P(12h) ≤ P(24h) ≤ P(48h) ≤ P(72h) for every fire, by taking cumulative maximums across horizons.</p>\n<p><strong>What we Learned</strong>\nAt small sample sizes, every \"improvement\" that lowers training error should be treated with suspicion. Most of our gains came from removing complexity  (fewer seeds, stronger regularization, locked weights) rather than adding it. The LB/OOF anti-correlation on seed count was the clearest signal that we had crossed into overfitting territory.</p>",
  "comments": [],
  "comment_count": 0,
  "messages": [
    {
      "id": 3466886,
      "postDate": "2026-06-04T21:03:34.583Z",
      "content": "<p><strong>Team Name:</strong> Kagglettes</p>\n<p><strong>Team Members:</strong> Ilona Le Drogoff &amp; Mellissa Hafis</p>\n<p><strong>Emails:</strong> ild8@icloud.com, <a href=\"mailto:mellimellissa109@gmail.com\">mellimellissa109@gmail.com</a></p>\n<p><strong>Private Leaderboard Score:</strong> 0.96600</p>\n<p><strong>Overview</strong></p>\n<p>Our solution predicts the probability that a wildfire will threaten an evacuation zone at four time horizons (12, 24, 48, and 72 hours) using only the first five hours of data after each fire's initial perimeter observation.\nWe framed the problem as right-censored survival analysis: some fires hit an evacuation zone within the 72-hour window (event = 1), others did not (event = 0, censored). The final solution is a weighted ensemble of four survival models, with blend weights locked to our best leaderboard submission.</p>\n<p><strong>Key Insight</strong></p>\n<p>The single most important observation was that fires split cleanly into two behavioral regimes based on their distance to the nearest evacuation zone centroid. Fires within 5 km behaved fundamentally differently from fires farther out: near-zone fires were primarily driven by closing speed and radial growth, while far-zone fires depended more on directional alignment and the threat score. Any model that ignored this split was leaving performance on the table.</p>\n<p><strong>Feature Engineering</strong></p>\n<p>Rather than broad feature expansion, we focused on a compact set of physics-grounded features:</p>\n<ul>\n<li>Distance transforms : log, inverse, square, cube, and percentile rank of distance, to give the models flexibility in how they encode proximity.</li>\n<li>ETA features : estimated time of arrival using raw closing speed, and a second estimate using effective closing speed (closing speed + radial growth).</li>\n<li>Threat score: alignment × closing speed / log(distance), capturing directional urgency in a single number.</li>\n<li>Zone-stratified ranks:each fire's closing speed (near zone) or threat score (far zone) ranked against the training distribution of its zone, not the whole dataset.</li>\n<li>Temporal features: summer and afternoon flags, as wildfire behavior shifts significantly with season and time of day.</li>\n</ul>\n<p>Columns that added noise without improving the score (centroid displacement, projected advance, relative growth) were dropped.</p>\n<p><strong>Models</strong></p>\n<p>The final ensemble combined four survival models, each trained with multi-seed, 5-fold cross-validation and averaged across both seeds and folds:</p>\n<ul>\n<li><strong>1. Gradient Boosting Survival Analysis (GBSA)</strong>\nOur strongest standalone model, carrying ~73 - 82% of the blend weight for near-zone fires. We used 6 configurations varying learning rate, tree depth, subsample rate, and leaf size, crossed with 20 random seeds,600 models in total. Stronger regularization (larger min_samples_leaf) was critical given n=221.</li>\n<li><strong>2. Cox Proportional Hazards (CoxPH)</strong>\nA regularized linear survival model trained on a curated 19-feature subset. Features were standardized before training. We swept 6 regularization strengths (α from 0.01 to 2.0) across 10 seeds. CoxPH contributed 12–25% of the blend, performing especially well for far-zone fires where the distance-hazard relationship is closer to linear.</li>\n<li><strong>3. Random Survival Forest (RSF)</strong>\nAdded model diversity and robustness. Three configurations varying leaf size and feature subsampling, crossed with 8 seeds. Lower weight (~2 - 6%) but useful for capturing non-linear interactions that GBSA misses.</li>\n<li><strong>4. Zone-Split LightGBM Calibrators</strong>\nBinary classifiers trained separately for near and far zones at 24h and 48h horizons, using IPCW (Inverse Probability of Censoring Weighting) to correct for censoring bias. Regularization was intentionally heavy given the small zone-level sample sizes. IPCW weights were computed on the full training set rather than per-fold for stability.</li>\n</ul>\n<p><strong>Distance-Stratified Ensemble</strong></p>\n<p>We split all fires into two zones using a hard threshold of 5,000 meters. Near-zone and far-zone fires received entirely separate blend weights at each horizon. This improved performance substantially because:</p>\n<ul>\n<li>Near fires: GBSA dominates, LGB provides supplementary calibration.</li>\n<li>Far fires: GBSA and Cox share the weight more evenly, LGB contributes more at 48h.</li>\n</ul>\n<p>The 12h far-zone prediction used GBSA only (weight = 1.0), because the LGB calibrator was too unstable on the small near-zone sample at this short horizon.</p>\n<p><strong>Blend Weights</strong></p>\n<p>Weights were determined by leaderboard performance across earlier versions and then locked. With only n=221 training samples, any automated weight search produces fewer than 30 samples per fold per zone, not enough signal to trust. We deliberately avoided re-sweeping weights in the final version to prevent noise-fitting.</p>\n<p>Final locked weights : </p>\n<table>\n<thead>\n<tr>\n<th>Horizon</th>\n<th></th>\n<th>Zone</th>\n<th></th>\n<th>GBSA</th>\n<th></th>\n<th>Cox</th>\n<th></th>\n<th>RSF</th>\n<th></th>\n<th>LGB</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>12h</td>\n<td></td>\n<td>Near</td>\n<td></td>\n<td>0.76</td>\n<td></td>\n<td>0.12</td>\n<td></td>\n<td>0.02</td>\n<td></td>\n<td>0.1</td>\n</tr>\n<tr>\n<td>24h</td>\n<td></td>\n<td>Near</td>\n<td></td>\n<td>0.82</td>\n<td></td>\n<td>0.14</td>\n<td></td>\n<td>0.02</td>\n<td></td>\n<td>0.02</td>\n</tr>\n<tr>\n<td>48h</td>\n<td></td>\n<td>Near</td>\n<td></td>\n<td>0.73</td>\n<td></td>\n<td>0.16</td>\n<td></td>\n<td>0.03</td>\n<td></td>\n<td>0.08</td>\n</tr>\n<tr>\n<td>24h</td>\n<td></td>\n<td>Far</td>\n<td></td>\n<td>0.62</td>\n<td></td>\n<td>0.25</td>\n<td></td>\n<td>0.06</td>\n<td></td>\n<td>0.07</td>\n</tr>\n<tr>\n<td>48h</td>\n<td></td>\n<td>Far</td>\n<td></td>\n<td>0.35</td>\n<td></td>\n<td>0.22</td>\n<td></td>\n<td>0.06</td>\n<td></td>\n<td>0.37</td>\n</tr>\n</tbody>\n</table>\n<p><strong>72h Post-Processing</strong>\nAll 72h predictions were set to 1.0. This consistently improved leaderboard performance because essentially all fires in this dataset reach an evacuation zone within 72 hours, and any model uncertainty at that horizon only hurts calibration.</p>\n<p><strong>Monotonicity Enforcement</strong>\nFinal predictions were clipped to [0, 1] and constrained so that P(12h) ≤ P(24h) ≤ P(48h) ≤ P(72h) for every fire, by taking cumulative maximums across horizons.</p>\n<p><strong>What we Learned</strong>\nAt small sample sizes, every \"improvement\" that lowers training error should be treated with suspicion. Most of our gains came from removing complexity  (fewer seeds, stronger regularization, locked weights) rather than adding it. The LB/OOF anti-correlation on seed count was the clearest signal that we had crossed into overfitting territory.</p>",
      "rawMarkdown": "**Team Name:** Kagglettes\n\n**Team Members:** Ilona Le Drogoff & Mellissa Hafis\n\n**Emails:** ild8@icloud.com, mellimellissa109@gmail.com\n\n**Private Leaderboard Score:** 0.96600\n\n\n\n\n**Overview**\n\nOur solution predicts the probability that a wildfire will threaten an evacuation zone at four time horizons (12, 24, 48, and 72 hours) using only the first five hours of data after each fire's initial perimeter observation.\nWe framed the problem as right-censored survival analysis: some fires hit an evacuation zone within the 72-hour window (event = 1), others did not (event = 0, censored). The final solution is a weighted ensemble of four survival models, with blend weights locked to our best leaderboard submission.\n\n**Key Insight**\n\nThe single most important observation was that fires split cleanly into two behavioral regimes based on their distance to the nearest evacuation zone centroid. Fires within 5 km behaved fundamentally differently from fires farther out: near-zone fires were primarily driven by closing speed and radial growth, while far-zone fires depended more on directional alignment and the threat score. Any model that ignored this split was leaving performance on the table.\n\n**Feature Engineering**\n\nRather than broad feature expansion, we focused on a compact set of physics-grounded features:\n\n- Distance transforms : log, inverse, square, cube, and percentile rank of distance, to give the models flexibility in how they encode proximity.\n- ETA features : estimated time of arrival using raw closing speed, and a second estimate using effective closing speed (closing speed + radial growth).\n- Threat score: alignment × closing speed / log(distance), capturing directional urgency in a single number.\n- Zone-stratified ranks:each fire's closing speed (near zone) or threat score (far zone) ranked against the training distribution of its zone, not the whole dataset.\n- Temporal features: summer and afternoon flags, as wildfire behavior shifts significantly with season and time of day.\n\nColumns that added noise without improving the score (centroid displacement, projected advance, relative growth) were dropped.\n\n**Models**\n\nThe final ensemble combined four survival models, each trained with multi-seed, 5-fold cross-validation and averaged across both seeds and folds:\n- **1. Gradient Boosting Survival Analysis (GBSA)**\nOur strongest standalone model, carrying ~73 - 82% of the blend weight for near-zone fires. We used 6 configurations varying learning rate, tree depth, subsample rate, and leaf size, crossed with 20 random seeds,600 models in total. Stronger regularization (larger min_samples_leaf) was critical given n=221.\n- **2. Cox Proportional Hazards (CoxPH)**\nA regularized linear survival model trained on a curated 19-feature subset. Features were standardized before training. We swept 6 regularization strengths (α from 0.01 to 2.0) across 10 seeds. CoxPH contributed 12–25% of the blend, performing especially well for far-zone fires where the distance-hazard relationship is closer to linear.\n- **3. Random Survival Forest (RSF)**\nAdded model diversity and robustness. Three configurations varying leaf size and feature subsampling, crossed with 8 seeds. Lower weight (~2 - 6%) but useful for capturing non-linear interactions that GBSA misses.\n- **4. Zone-Split LightGBM Calibrators**\nBinary classifiers trained separately for near and far zones at 24h and 48h horizons, using IPCW (Inverse Probability of Censoring Weighting) to correct for censoring bias. Regularization was intentionally heavy given the small zone-level sample sizes. IPCW weights were computed on the full training set rather than per-fold for stability.\n\n**Distance-Stratified Ensemble**\n\nWe split all fires into two zones using a hard threshold of 5,000 meters. Near-zone and far-zone fires received entirely separate blend weights at each horizon. This improved performance substantially because:\n\n- Near fires: GBSA dominates, LGB provides supplementary calibration.\n- Far fires: GBSA and Cox share the weight more evenly, LGB contributes more at 48h.\n\nThe 12h far-zone prediction used GBSA only (weight = 1.0), because the LGB calibrator was too unstable on the small near-zone sample at this short horizon.\n\n**Blend Weights**\n\nWeights were determined by leaderboard performance across earlier versions and then locked. With only n=221 training samples, any automated weight search produces fewer than 30 samples per fold per zone, not enough signal to trust. We deliberately avoided re-sweeping weights in the final version to prevent noise-fitting.\n\nFinal locked weights : \n|  Horizon|  |Zone | |GBSA||Cox||RSF||LGB|\n| --- | --- |\n| 12h ||Near||0.76||0.12||0.02||0.1|\n| 24h ||Near||0.82||0.14||0.02||0.02|\n| 48h ||Near||0.73||0.16||0.03||0.08|\n| 24h ||Far||0.62||0.25||0.06||0.07|\n|48h ||Far||0.35||0.22||0.06||0.37|\n\n**72h Post-Processing**\nAll 72h predictions were set to 1.0. This consistently improved leaderboard performance because essentially all fires in this dataset reach an evacuation zone within 72 hours, and any model uncertainty at that horizon only hurts calibration.\n\n**Monotonicity Enforcement**\nFinal predictions were clipped to [0, 1] and constrained so that P(12h) ≤ P(24h) ≤ P(48h) ≤ P(72h) for every fire, by taking cumulative maximums across horizons.\n\n**What we Learned**\nAt small sample sizes, every \"improvement\" that lowers training error should be treated with suspicion. Most of our gains came from removing complexity  (fewer seeds, stronger regularization, locked weights) rather than adding it. The LB/OOF anti-correlation on seed count was the clearest signal that we had crossed into overfitting territory."
    }
  ],
  "complete": true,
  "source": "live",
  "fetched_at": "2026-10-20T08:49:26Z",
  "competition_id": 125681,
  "competition_slug": "WiDSWorldWide_GlobalDathon26",
  "team_id": 15449962,
  "solution_url": "/competitions/WiDSWorldWide_GlobalDathon26/writeups/wids-global-datathon-2026-solution-kagglettes"
}