{
  "id": 566624,
  "title": "11th Place Solution",
  "content": "<p>First of all, my teammate <a href=\"https://www.kaggle.com/siddhant1104\" target=\"_blank\">@siddhant1104</a> and I would like to thank the organizers for hosting this competition and congratulate all the winners. It was such a hardship to decide focus on improving whether the LB score or the CV score because when the CV score was increased, our LB scores mostly got worse. Our solution is weighted ensemble of two separate approaches.</p>\n<h2>Sercan's Pipeline</h2>\n<ul>\n<li>Notebook: <a href=\"https://www.kaggle.com/code/sercanyesiloz/cibmtr-ensemble-learning?scriptVersionId=226093818\" target=\"_blank\">https://www.kaggle.com/code/sercanyesiloz/cibmtr-ensemble-learning?scriptVersionId=226093818</a></li>\n<li>Ensemble of NN with Pairwise Ranking Loss and GDBT pipelines</li>\n<li>Sample weights by <strong>race groups</strong></li>\n<li>Ordinal encoding for <code>dri_score</code> and <code>conditioning_intensity</code> (tuned with optuna)</li>\n<li>Crossing <code>donor_age</code> and <code>age_at_hct</code> features to extract some</li>\n<li>Cyclic year features (<code>sin_year</code> and<code>cos_year</code>)</li>\n<li>Kaplan Meier, Nelson Aalen and Cox target transformations</li>\n<li>4 LightGBM and 6 CatBoost models</li>\n<li>GBDT Cross-Validation Setup -&gt; Stratified 10 Folds by <strong>race groups</strong></li>\n<li>Neural Networks Cross-Validation Setup -&gt; Stratified 5 Folds by <strong>race groups</strong> and <strong>age_at_hct==0.44</strong></li>\n<li>Predictions were scaled before blending</li>\n</ul>\n<h3>Ordinal Encoding</h3>\n<pre><code>dri_score_mapping = {\n    : 0.6850752146154907,\n    : 0.18589473149703015,\n    : 0.5683465067841215,\n    : 0.7708720693082163,\n    : 0.9586424711654987,\n    : 0.6831791561653417,\n    : 0.7166435651957048,\n    : 0.8821201547093761,\n    : 0.49866306284678735,\n    : 0.9411056819278409,\n    : 0.1890854786067684,\n    : 0.5377767827330516\n}\n\nconditioning_intensity_mapping = {\n    : 0.6026915942898587,\n    : 0.02153075067313332,\n    : 0.8995437792670338,\n    : 0.9211477712757186,\n    : 0.7388173559148422,\n    : 0.22412092165882558,\n    : 0.32745500022610163\n}\n</code></pre>\n<h2>Siddhant's Pipeline</h2>\n<ul>\n<li>Ensemble of NN with Pairwise Ranking Loss and ML (GBDT and Linear Models) pipelines</li>\n<li>Sample weights by <strong>race groups</strong></li>\n<li>Ordinal encoding for many features</li>\n<li>Frequency encoding for categorical features</li>\n<li>Cyclic year features (<code>sin_year</code> and<code>cos_year</code>)</li>\n<li>3 custom target transformations using Kaplan Meier and Nelson Aalen methods</li>\n<li>Classification and Regression models</li>\n<li>Models trained with entire train set, didn't use any cross-validation method</li>\n<li>Predictions were scaled before blending</li>\n</ul>",
  "comments": [
    {
      "id": 3143256,
      "author_name": "Jaydev",
      "author_url": "",
      "post_date": "2025-03-07T03:55:00.413000",
      "content": "<p>Congratulations for having gold medal <a href=\"https://www.kaggle.com/siddhant1104\" target=\"_blank\">@siddhant1104</a> and <a href=\"https://www.kaggle.com/sercanyesiloz\" target=\"_blank\">@sercanyesiloz</a> 🥳</p>",
      "votes": 2,
      "replies": [
        {
          "id": 3143532,
          "author_name": "Sercan Yeşilöz",
          "author_url": "",
          "post_date": "2025-03-07T10:06:19.820000",
          "content": "<p>Thank you!</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 3144105,
      "author_name": "Robert Hatch",
      "author_url": "",
      "post_date": "2025-03-08T00:13:07.293000",
      "content": "<blockquote>\n  <p>It was such a hardship to decide focus on improving whether the LB score or the CV score because when the CV score was increased, our LB scores mostly got worse</p>\n</blockquote>\n<p>What ended up working and getting you 11th? I'm guessing from my own experience that the higher CV submission is what ended up doing really well?</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 3142460,
      "author_name": "Andreas Bisiadis",
      "author_url": "",
      "post_date": "2025-03-06T12:11:03.697000",
      "content": "<p><a href=\"https://www.kaggle.com/sercanyesiloz\" target=\"_blank\">@sercanyesiloz</a> How did you select the race group sample weights?</p>\n<pre><code>            raceweight = {:  / ,\n                            :  / ,\n                            :  / ,\n                            :  / ,\n                            :  / ,\n                            :  / \n                           }\n</code></pre>",
      "votes": 0,
      "replies": [
        {
          "id": 3143520,
          "author_name": "Sercan Yeşilöz",
          "author_url": "",
          "post_date": "2025-03-07T09:50:06.347000",
          "content": "<p>These weights are actually the average of the two race group weights that received the highest LB scores.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    }
  ],
  "comment_count": 5,
  "messages": [
    {
      "id": 3142281,
      "postDate": "2025-03-06T09:08:02.037Z",
      "content": "<p>First of all, my teammate <a href=\"https://www.kaggle.com/siddhant1104\" target=\"_blank\">@siddhant1104</a> and I would like to thank the organizers for hosting this competition and congratulate all the winners. It was such a hardship to decide focus on improving whether the LB score or the CV score because when the CV score was increased, our LB scores mostly got worse. Our solution is weighted ensemble of two separate approaches.</p>\n<h2>Sercan's Pipeline</h2>\n<ul>\n<li>Notebook: <a href=\"https://www.kaggle.com/code/sercanyesiloz/cibmtr-ensemble-learning?scriptVersionId=226093818\" target=\"_blank\">https://www.kaggle.com/code/sercanyesiloz/cibmtr-ensemble-learning?scriptVersionId=226093818</a></li>\n<li>Ensemble of NN with Pairwise Ranking Loss and GDBT pipelines</li>\n<li>Sample weights by <strong>race groups</strong></li>\n<li>Ordinal encoding for <code>dri_score</code> and <code>conditioning_intensity</code> (tuned with optuna)</li>\n<li>Crossing <code>donor_age</code> and <code>age_at_hct</code> features to extract some</li>\n<li>Cyclic year features (<code>sin_year</code> and<code>cos_year</code>)</li>\n<li>Kaplan Meier, Nelson Aalen and Cox target transformations</li>\n<li>4 LightGBM and 6 CatBoost models</li>\n<li>GBDT Cross-Validation Setup -&gt; Stratified 10 Folds by <strong>race groups</strong></li>\n<li>Neural Networks Cross-Validation Setup -&gt; Stratified 5 Folds by <strong>race groups</strong> and <strong>age_at_hct==0.44</strong></li>\n<li>Predictions were scaled before blending</li>\n</ul>\n<h3>Ordinal Encoding</h3>\n<pre><code>dri_score_mapping = {\n    : 0.6850752146154907,\n    : 0.18589473149703015,\n    : 0.5683465067841215,\n    : 0.7708720693082163,\n    : 0.9586424711654987,\n    : 0.6831791561653417,\n    : 0.7166435651957048,\n    : 0.8821201547093761,\n    : 0.49866306284678735,\n    : 0.9411056819278409,\n    : 0.1890854786067684,\n    : 0.5377767827330516\n}\n\nconditioning_intensity_mapping = {\n    : 0.6026915942898587,\n    : 0.02153075067313332,\n    : 0.8995437792670338,\n    : 0.9211477712757186,\n    : 0.7388173559148422,\n    : 0.22412092165882558,\n    : 0.32745500022610163\n}\n</code></pre>\n<h2>Siddhant's Pipeline</h2>\n<ul>\n<li>Ensemble of NN with Pairwise Ranking Loss and ML (GBDT and Linear Models) pipelines</li>\n<li>Sample weights by <strong>race groups</strong></li>\n<li>Ordinal encoding for many features</li>\n<li>Frequency encoding for categorical features</li>\n<li>Cyclic year features (<code>sin_year</code> and<code>cos_year</code>)</li>\n<li>3 custom target transformations using Kaplan Meier and Nelson Aalen methods</li>\n<li>Classification and Regression models</li>\n<li>Models trained with entire train set, didn't use any cross-validation method</li>\n<li>Predictions were scaled before blending</li>\n</ul>",
      "rawMarkdown": "First of all, my teammate @siddhant1104 and I would like to thank the organizers for hosting this competition and congratulate all the winners. It was such a hardship to decide focus on improving whether the LB score or the CV score because when the CV score was increased, our LB scores mostly got worse. Our solution is weighted ensemble of two separate approaches.\n\n## Sercan's Pipeline\n\n- Notebook: https://www.kaggle.com/code/sercanyesiloz/cibmtr-ensemble-learning?scriptVersionId=226093818\n- Ensemble of NN with Pairwise Ranking Loss and GDBT pipelines\n- Sample weights by **race groups**\n- Ordinal encoding for <code>dri_score</code> and <code>conditioning_intensity</code> (tuned with optuna)\n- Crossing <code>donor_age</code> and <code>age_at_hct</code> features to extract some\n- Cyclic year features (<code>sin_year</code> and<code>cos_year</code>)\n- Kaplan Meier, Nelson Aalen and Cox target transformations\n- 4 LightGBM and 6 CatBoost models\n- GBDT Cross-Validation Setup -> Stratified 10 Folds by **race groups**\n- Neural Networks Cross-Validation Setup -> Stratified 5 Folds by **race groups** and **age_at_hct==0.44**\n- Predictions were scaled before blending\n\n### Ordinal Encoding\n```\ndri_score_mapping = {\n    \"High\": 0.6850752146154907,\n    \"High - TED AML case <missing cytogenetics\": 0.18589473149703015,\n    \"Intermediate\": 0.5683465067841215,\n    \"Intermediate - TED AML case <missing cytogenetics\": 0.7708720693082163,\n    \"Low\": 0.9586424711654987,\n    \"Missing disease status\": 0.6831791561653417,\n    \"N/A - disease not classifiable\": 0.7166435651957048,\n    \"N/A - non-malignant indication\": 0.8821201547093761,\n    \"N/A - pediatric\": 0.49866306284678735,\n    \"TBD cytogenetics\": 0.9411056819278409,\n    \"Unknown\": 0.1890854786067684,\n    \"Very high\": 0.5377767827330516\n}\n\nconditioning_intensity_mapping = {\n    \"Unknown\": 0.6026915942898587,\n    \"MAC\": 0.02153075067313332,\n    \"RIC\": 0.8995437792670338,\n    \"NMA\": 0.9211477712757186,\n    \"TBD\": 0.7388173559148422,\n    \"No drugs reported\": 0.22412092165882558,\n    \"N/A, F(pre-TED) not submitted\": 0.32745500022610163\n}\n\n```\n\n\n## Siddhant's Pipeline\n\n- Ensemble of NN with Pairwise Ranking Loss and ML (GBDT and Linear Models) pipelines\n- Sample weights by **race groups**\n- Ordinal encoding for many features\n- Frequency encoding for categorical features\n- Cyclic year features (<code>sin_year</code> and<code>cos_year</code>)\n- 3 custom target transformations using Kaplan Meier and Nelson Aalen methods\n- Classification and Regression models\n- Models trained with entire train set, didn't use any cross-validation method\n- Predictions were scaled before blending",
      "votes": 19
    },
    {
      "id": 3143256,
      "postDate": "2025-03-07T03:55:00.413Z",
      "content": "<p>Congratulations for having gold medal <a href=\"https://www.kaggle.com/siddhant1104\" target=\"_blank\">@siddhant1104</a> and <a href=\"https://www.kaggle.com/sercanyesiloz\" target=\"_blank\">@sercanyesiloz</a> 🥳</p>",
      "rawMarkdown": "Congratulations for having gold medal @siddhant1104 and @sercanyesiloz 🥳",
      "votes": 2,
      "replies": [
        {
          "id": 3143532,
          "postDate": "2025-03-07T10:06:19.820Z",
          "content": "<p>Thank you!</p>",
          "rawMarkdown": "Thank you!"
        }
      ]
    },
    {
      "id": 3144105,
      "postDate": "2025-03-08T00:13:07.293Z",
      "content": "<blockquote>\n  <p>It was such a hardship to decide focus on improving whether the LB score or the CV score because when the CV score was increased, our LB scores mostly got worse</p>\n</blockquote>\n<p>What ended up working and getting you 11th? I'm guessing from my own experience that the higher CV submission is what ended up doing really well?</p>",
      "rawMarkdown": "> It was such a hardship to decide focus on improving whether the LB score or the CV score because when the CV score was increased, our LB scores mostly got worse\n\nWhat ended up working and getting you 11th? I'm guessing from my own experience that the higher CV submission is what ended up doing really well?"
    },
    {
      "id": 3142460,
      "postDate": "2025-03-06T12:11:03.697Z",
      "content": "<p><a href=\"https://www.kaggle.com/sercanyesiloz\" target=\"_blank\">@sercanyesiloz</a> How did you select the race group sample weights?</p>\n<pre><code>            raceweight = {:  / ,\n                            :  / ,\n                            :  / ,\n                            :  / ,\n                            :  / ,\n                            :  / \n                           }\n</code></pre>",
      "rawMarkdown": "@sercanyesiloz How did you select the race group sample weights?\n\n```\n            race2weight3 = {'White': (0.37 + 0.64) / 2,\n                            'Asian': (0.44 + 0.70) / 2,\n                            'Black or African-American': (0.43 + 0.67) / 2,\n                            'More than one race': (0.53 + 0.68) / 2,\n                            'Native Hawaiian or other Pacific Islander': (0.45 + 0.66) / 2,\n                            'American Indian or Alaska Native': (0.47 + 0.68) / 2\n                           }\n```",
      "replies": [
        {
          "id": 3143520,
          "postDate": "2025-03-07T09:50:06.347Z",
          "content": "<p>These weights are actually the average of the two race group weights that received the highest LB scores.</p>",
          "rawMarkdown": "These weights are actually the average of the two race group weights that received the highest LB scores."
        }
      ]
    }
  ],
  "complete": true,
  "source": "live",
  "fetched_at": "2026-10-19T19:47:53Z",
  "competition_id": 70942,
  "competition_slug": "equity-post-HCT-survival-predictions",
  "team_id": 13063402,
  "solution_url": "/competitions/equity-post-HCT-survival-predictions/writeups/sercan-siddhant-11th-place-solution"
}