{
  "id": 698793,
  "title": "4th Place Solution – WiDS Global Datathon 2026 ",
  "content": "<h2><strong>Overview</strong></h2>\n<p>This competition focused on predicting the probability that a wildfire would threaten an evacuation zone within 12h, 24h, 48h, and 72h using only the first five hours of wildfire behavior data.</p>\n<p>I approached the problem as a right-censored survival analysis task since the dataset contained both observed event times and censored wildfire events.</p>\n<p>The final solution combined:</p>\n<ul>\n<li>survival models,</li>\n<li>physics-inspired feature engineering,</li>\n<li>distance-stratified ensembling,</li>\n<li>and a simple 72h post-processing rule.</li>\n</ul>\n<p>The solution achieved <strong>4th place globally</strong>.</p>\n<h2><strong>Key Insight</strong></h2>\n<p>The most important observation was that wildfire threat progression was primarily driven by:</p>\n<ul>\n<li>distance to evacuation zones,</li>\n<li>closing speed,</li>\n<li>radial growth,</li>\n<li>directional alignment,</li>\n<li>and movement toward or away from evacuation zones.</li>\n</ul>\n<p>Instead of broad feature expansion, I focused on modeling the physical relationship between wildfire spread and evacuation-zone proximity.</p>\n<h2><strong>Feature Engineering</strong></h2>\n<p>I created a compact set of physics-inspired features designed to capture wildfire dynamics, including:</p>\n<ul>\n<li>estimated time-to-reach evacuation zone,</li>\n<li>radial growth relative to distance,</li>\n<li>area growth relative to distance,</li>\n<li>directional risk,</li>\n<li>distance change ratio,</li>\n<li>log-distance,</li>\n<li>log positive closing speed,</li>\n<li>and spread pressure.</li>\n</ul>\n<p>These features helped the survival models better capture urgency and risk progression while avoiding overfitting on the small dataset.</p>\n<h2><strong>Models</strong></h2>\n<p>The final ensemble used three survival models:</p>\n<p><strong>Gradient Boosting Survival Analysis (GBSA)</strong></p>\n<p>The strongest standalone model, particularly effective at capturing nonlinear wildfire behavior.</p>\n<p><strong>Random Survival Forest (RSF)</strong></p>\n<p>Added model diversity and improved robustness across different wildfire regimes.</p>\n<p><strong>CoxNet</strong></p>\n<p>Provided a more linear survival perspective and performed especially well for far-distance fires.</p>\n<h2><strong>Cross-Validation</strong></h2>\n<p>I used 5-fold cross-validation to:</p>\n<ul>\n<li>generate out-of-fold predictions,</li>\n<li>produce stable test predictions,</li>\n<li>and support ensemble optimization.</li>\n</ul>\n<p>Test predictions were averaged across folds.</p>\n<h2><strong>Distance-Stratified Ensemble</strong></h2>\n<p>One of the most impactful improvements came from stratifying fires into:</p>\n<ul>\n<li>near,</li>\n<li>medium,</li>\n<li>and far-distance groups</li>\n</ul>\n<p>using tertiles of the minimum evacuation-zone distance feature.</p>\n<p>Instead of using one global ensemble weight, I optimized separate model weights for each distance bin using Optuna.</p>\n<p>This worked well because different models performed better in different distance regimes:</p>\n<ul>\n<li>near and medium-distance fires relied heavily on GBSA,</li>\n<li>while far-distance fires benefited more from CoxNet.</li>\n</ul>\n<h2><strong>72h Post-Processing</strong></h2>\n<p>The final solution applied a simple rule:</p>\n<ul>\n<li>Set all 72h probabilities to 1.0.</li>\n</ul>\n<p>Although simple, this consistently improved leaderboard performance because the 72h horizon behaved differently from shorter horizons and was strongly skewed toward positive outcomes among observed events.</p>\n<p>The model predictions were still fully used for the 12h, 24h, and 48h horizons.</p>\n<h2><strong>Monotonicity Enforcement</strong></h2>\n<p>Final predictions were constrained to ensure:</p>\n<ul>\n<li>probability(12h) ≤ probability(24h) ≤ probability(48h) ≤ probability(72h)</li>\n</ul>\n<p>This ensured logical consistency across time horizons.</p>\n<h2><strong>What Did Not Work</strong></h2>\n<p>Several approaches were tested but did not improve the final score, including:</p>\n<ul>\n<li>isotonic calibration,</li>\n<li>broader feature expansion,</li>\n<li>cyclical time features,</li>\n<li>LightGBM horizon models,</li>\n<li>horizon-wise ensemble tuning,</li>\n<li>and threshold-based 72h post-processing.</li>\n</ul>\n<p>The simpler distance-stratified survival ensemble remained the strongest solution.</p>\n<h2><strong>Final Pipeline</strong></h2>\n<ul>\n<li>Load train and test data</li>\n<li>Create physics-inspired features</li>\n<li>Create distance bins using training tertiles</li>\n<li>Train GBSA, RSF, and CoxNet using 5-fold CV</li>\n<li>Generate OOF and test predictions</li>\n<li>Optimize ensemble weights per distance bin using Optuna</li>\n<li>Blend predictions using bin-specific weights</li>\n<li>Apply 72h override</li>\n<li>Enforce monotonicity\n-Generate final submission</li>\n</ul>",
  "comments": [],
  "comment_count": 0,
  "messages": [
    {
      "id": 3456317,
      "postDate": "2026-05-11T17:33:56.940Z",
      "content": "<h2><strong>Overview</strong></h2>\n<p>This competition focused on predicting the probability that a wildfire would threaten an evacuation zone within 12h, 24h, 48h, and 72h using only the first five hours of wildfire behavior data.</p>\n<p>I approached the problem as a right-censored survival analysis task since the dataset contained both observed event times and censored wildfire events.</p>\n<p>The final solution combined:</p>\n<ul>\n<li>survival models,</li>\n<li>physics-inspired feature engineering,</li>\n<li>distance-stratified ensembling,</li>\n<li>and a simple 72h post-processing rule.</li>\n</ul>\n<p>The solution achieved <strong>4th place globally</strong>.</p>\n<h2><strong>Key Insight</strong></h2>\n<p>The most important observation was that wildfire threat progression was primarily driven by:</p>\n<ul>\n<li>distance to evacuation zones,</li>\n<li>closing speed,</li>\n<li>radial growth,</li>\n<li>directional alignment,</li>\n<li>and movement toward or away from evacuation zones.</li>\n</ul>\n<p>Instead of broad feature expansion, I focused on modeling the physical relationship between wildfire spread and evacuation-zone proximity.</p>\n<h2><strong>Feature Engineering</strong></h2>\n<p>I created a compact set of physics-inspired features designed to capture wildfire dynamics, including:</p>\n<ul>\n<li>estimated time-to-reach evacuation zone,</li>\n<li>radial growth relative to distance,</li>\n<li>area growth relative to distance,</li>\n<li>directional risk,</li>\n<li>distance change ratio,</li>\n<li>log-distance,</li>\n<li>log positive closing speed,</li>\n<li>and spread pressure.</li>\n</ul>\n<p>These features helped the survival models better capture urgency and risk progression while avoiding overfitting on the small dataset.</p>\n<h2><strong>Models</strong></h2>\n<p>The final ensemble used three survival models:</p>\n<p><strong>Gradient Boosting Survival Analysis (GBSA)</strong></p>\n<p>The strongest standalone model, particularly effective at capturing nonlinear wildfire behavior.</p>\n<p><strong>Random Survival Forest (RSF)</strong></p>\n<p>Added model diversity and improved robustness across different wildfire regimes.</p>\n<p><strong>CoxNet</strong></p>\n<p>Provided a more linear survival perspective and performed especially well for far-distance fires.</p>\n<h2><strong>Cross-Validation</strong></h2>\n<p>I used 5-fold cross-validation to:</p>\n<ul>\n<li>generate out-of-fold predictions,</li>\n<li>produce stable test predictions,</li>\n<li>and support ensemble optimization.</li>\n</ul>\n<p>Test predictions were averaged across folds.</p>\n<h2><strong>Distance-Stratified Ensemble</strong></h2>\n<p>One of the most impactful improvements came from stratifying fires into:</p>\n<ul>\n<li>near,</li>\n<li>medium,</li>\n<li>and far-distance groups</li>\n</ul>\n<p>using tertiles of the minimum evacuation-zone distance feature.</p>\n<p>Instead of using one global ensemble weight, I optimized separate model weights for each distance bin using Optuna.</p>\n<p>This worked well because different models performed better in different distance regimes:</p>\n<ul>\n<li>near and medium-distance fires relied heavily on GBSA,</li>\n<li>while far-distance fires benefited more from CoxNet.</li>\n</ul>\n<h2><strong>72h Post-Processing</strong></h2>\n<p>The final solution applied a simple rule:</p>\n<ul>\n<li>Set all 72h probabilities to 1.0.</li>\n</ul>\n<p>Although simple, this consistently improved leaderboard performance because the 72h horizon behaved differently from shorter horizons and was strongly skewed toward positive outcomes among observed events.</p>\n<p>The model predictions were still fully used for the 12h, 24h, and 48h horizons.</p>\n<h2><strong>Monotonicity Enforcement</strong></h2>\n<p>Final predictions were constrained to ensure:</p>\n<ul>\n<li>probability(12h) ≤ probability(24h) ≤ probability(48h) ≤ probability(72h)</li>\n</ul>\n<p>This ensured logical consistency across time horizons.</p>\n<h2><strong>What Did Not Work</strong></h2>\n<p>Several approaches were tested but did not improve the final score, including:</p>\n<ul>\n<li>isotonic calibration,</li>\n<li>broader feature expansion,</li>\n<li>cyclical time features,</li>\n<li>LightGBM horizon models,</li>\n<li>horizon-wise ensemble tuning,</li>\n<li>and threshold-based 72h post-processing.</li>\n</ul>\n<p>The simpler distance-stratified survival ensemble remained the strongest solution.</p>\n<h2><strong>Final Pipeline</strong></h2>\n<ul>\n<li>Load train and test data</li>\n<li>Create physics-inspired features</li>\n<li>Create distance bins using training tertiles</li>\n<li>Train GBSA, RSF, and CoxNet using 5-fold CV</li>\n<li>Generate OOF and test predictions</li>\n<li>Optimize ensemble weights per distance bin using Optuna</li>\n<li>Blend predictions using bin-specific weights</li>\n<li>Apply 72h override</li>\n<li>Enforce monotonicity\n-Generate final submission</li>\n</ul>",
      "rawMarkdown": "## **Overview**\n\nThis competition focused on predicting the probability that a wildfire would threaten an evacuation zone within 12h, 24h, 48h, and 72h using only the first five hours of wildfire behavior data.\n\nI approached the problem as a right-censored survival analysis task since the dataset contained both observed event times and censored wildfire events.\n\nThe final solution combined:\n\n- survival models,\n- physics-inspired feature engineering,\n- distance-stratified ensembling,\n- and a simple 72h post-processing rule.\n\nThe solution achieved **4th place globally**.\n\n## **Key Insight**\n\nThe most important observation was that wildfire threat progression was primarily driven by:\n\n- distance to evacuation zones,\n- closing speed,\n- radial growth,\n- directional alignment,\n- and movement toward or away from evacuation zones.\n\nInstead of broad feature expansion, I focused on modeling the physical relationship between wildfire spread and evacuation-zone proximity.\n\n## **Feature Engineering**\n\nI created a compact set of physics-inspired features designed to capture wildfire dynamics, including:\n\n- estimated time-to-reach evacuation zone,\n- radial growth relative to distance,\n- area growth relative to distance,\n- directional risk,\n- distance change ratio,\n- log-distance,\n- log positive closing speed,\n- and spread pressure.\n\nThese features helped the survival models better capture urgency and risk progression while avoiding overfitting on the small dataset.\n\n## **Models**\n\nThe final ensemble used three survival models:\n\n**Gradient Boosting Survival Analysis (GBSA)**\n\nThe strongest standalone model, particularly effective at capturing nonlinear wildfire behavior.\n\n**Random Survival Forest (RSF)**\n\nAdded model diversity and improved robustness across different wildfire regimes.\n\n**CoxNet**\n\nProvided a more linear survival perspective and performed especially well for far-distance fires.\n\n## **Cross-Validation**\n\nI used 5-fold cross-validation to:\n\n- generate out-of-fold predictions,\n- produce stable test predictions,\n- and support ensemble optimization.\n\nTest predictions were averaged across folds.\n\n## **Distance-Stratified Ensemble**\n\nOne of the most impactful improvements came from stratifying fires into:\n\n- near,\n- medium,\n- and far-distance groups\n\nusing tertiles of the minimum evacuation-zone distance feature.\n\nInstead of using one global ensemble weight, I optimized separate model weights for each distance bin using Optuna.\n\nThis worked well because different models performed better in different distance regimes:\n\n- near and medium-distance fires relied heavily on GBSA,\n- while far-distance fires benefited more from CoxNet.\n\n## **72h Post-Processing**\n\nThe final solution applied a simple rule:\n\n- Set all 72h probabilities to 1.0.\n\nAlthough simple, this consistently improved leaderboard performance because the 72h horizon behaved differently from shorter horizons and was strongly skewed toward positive outcomes among observed events.\n\nThe model predictions were still fully used for the 12h, 24h, and 48h horizons.\n\n## **Monotonicity Enforcement**\n\nFinal predictions were constrained to ensure:\n\n- probability(12h) ≤ probability(24h) ≤ probability(48h) ≤ probability(72h)\n\nThis ensured logical consistency across time horizons.\n\n## **What Did Not Work**\n\nSeveral approaches were tested but did not improve the final score, including:\n\n- isotonic calibration,\n- broader feature expansion,\n- cyclical time features,\n- LightGBM horizon models,\n- horizon-wise ensemble tuning,\n- and threshold-based 72h post-processing.\n\nThe simpler distance-stratified survival ensemble remained the strongest solution.\n\n## **Final Pipeline**\n- Load train and test data\n- Create physics-inspired features\n- Create distance bins using training tertiles\n- Train GBSA, RSF, and CoxNet using 5-fold CV\n- Generate OOF and test predictions\n- Optimize ensemble weights per distance bin using Optuna\n- Blend predictions using bin-specific weights\n- Apply 72h override\n- Enforce monotonicity\n-Generate final submission",
      "votes": 5
    }
  ],
  "complete": true,
  "source": "live",
  "fetched_at": "2026-10-20T08:48:27Z",
  "competition_id": 125681,
  "competition_slug": "WiDSWorldWide_GlobalDathon26",
  "team_id": 15299828,
  "solution_url": "/competitions/WiDSWorldWide_GlobalDathon26/writeups/4th-place-solution-wids-global-datathon-2026"
}