{
  "id": 566769,
  "title": "22nd place solution with code",
  "content": "<p>Thank you Kaggle staff and competition organizers for such a interesting competition. Also, thanks to everyone for sharing during the competition. I learned lot of things in this competition from exploring different tabular model to ensembling them and about survival analysis data.</p>\n<p>I have open sourced almost all my training notebooks in the GitHub account. here is the link : <a href=\"https://github.com/jaytonde/Kaggle-CIBMTR-2024\" target=\"_blank\">https://github.com/jaytonde/Kaggle-CIBMTR-2024</a></p>\n<p>I have also made my final inference notebook public here : <a href=\"https://www.kaggle.com/code/jaytonde/hill-climbing-submission\" target=\"_blank\">https://www.kaggle.com/code/jaytonde/hill-climbing-submission</a></p>\n<p>I did not maintained the code well cause of shortage of time so reach out to me in case of any doubts. </p>\n<p>My solution is very simple yet generalized cause I do not have much gap in CV, LB and Private LB.<br>\nI have performed multiple experiments with different model and target preparation techniques and my final solution is just hill climbing of this experiments.</p>\n<h2>Folding strategy</h2>\n<p>As per the discussions in the competition about folding strategies, I decided to do 10 random folds, as 5 folds stratified by race wasn't beneficial.</p>\n<h2>Ensemble</h2>\n<p>Final solution have diverse ensemble of neural networks, XGBoost, CatBoost, LGBM, Lasso regression,  TabFPN, Support Vector Regression, Tablenet, torch surv,  Ridge Regression, TabM, Linear Regression, Table Transformer.</p>\n<p>Following is my experiments with respective weights in hill climbing ensemble.<br>\nFirst best model having experiment name prlnn-exp-01 which is Refactoring Pairwise Ranking Network with classification mask and 0.2 shift.</p>\n<table>\n<thead>\n<tr>\n<th>Experiment</th>\n<th>Description</th>\n<th>Weight</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>catboost-exp-05</td>\n<td>CatBoost with Kaplan Meier targets and classification mask</td>\n<td>0.48000000000000087</td>\n</tr>\n<tr>\n<td>xgboost-exp-09</td>\n<td>XGBoost with Monotone constraints and  Kaplan Meier targets</td>\n<td>0.2700000000000007</td>\n</tr>\n<tr>\n<td>lgbm-exp-08</td>\n<td>LGBM with BreslowFlemingHarringtonFitter targets</td>\n<td>-0.20999999999999974</td>\n</tr>\n<tr>\n<td>catboost-exp-01</td>\n<td>CatBoost with Kaplan Meier targets</td>\n<td>0.10000000000000053</td>\n</tr>\n<tr>\n<td>lasso-exp-01</td>\n<td>Lasso regressor with Kaplan Meier targets</td>\n<td>-0.03999999999999959</td>\n</tr>\n<tr>\n<td>nn-exp-04</td>\n<td>Neural Network having classification mask and 0.1 shift</td>\n<td>0.12000000000000055</td>\n</tr>\n<tr>\n<td>svr-exp-06</td>\n<td>Support vector regression with Nelson Aalen Fitter targets and classification mask</td>\n<td>-0.0499999999999996</td>\n</tr>\n<tr>\n<td>ds-exp-01</td>\n<td>CoxPH model</td>\n<td>0.04000000000000048</td>\n</tr>\n<tr>\n<td>rf-exp-05</td>\n<td>Random Forest with Kaplan Meier targets and classification mask</td>\n<td>-0.05999999999999961</td>\n</tr>\n<tr>\n<td>svr-exp-01</td>\n<td>Support vector regression with Kaplan Meier targets</td>\n<td>-0.03999999999999959</td>\n</tr>\n<tr>\n<td>tf-exp-01</td>\n<td>tabpfn with Kaplan Meier targets</td>\n<td>0.04000000000000048</td>\n</tr>\n<tr>\n<td>catboost-exp-03</td>\n<td>CatBoost with Nelson Alen targets</td>\n<td>-0.03999999999999959</td>\n</tr>\n<tr>\n<td>catboost-exp-06</td>\n<td>CatBoost with Nelson Aalen Fitter targets and classification mask</td>\n<td>0.0600000000000005</td>\n</tr>\n<tr>\n<td>tn-exp-02</td>\n<td>Tablenet</td>\n<td>0.03000000000000047</td>\n</tr>\n<tr>\n<td>xgboost-exp-02</td>\n<td>XGBoost with Cox Loss</td>\n<td>-0.0499999999999996</td>\n</tr>\n<tr>\n<td>catboost-exp-04</td>\n<td>CatBoost with CoxPHFitter targets</td>\n<td>0.020000000000000462</td>\n</tr>\n<tr>\n<td>lgbm-exp-03</td>\n<td>LGBM with Nelson Alen targets</td>\n<td>-0.029999999999999583</td>\n</tr>\n<tr>\n<td>ts-exp-01</td>\n<td>Torch Surv model</td>\n<td>-0.019999999999999574</td>\n</tr>\n<tr>\n<td>xgboost-exp-10</td>\n<td></td>\n<td>0.04000000000000048</td>\n</tr>\n<tr>\n<td>xgboost-exp-06</td>\n<td>XGBoost with Nelson Aalen Fitter targets and classification mask</td>\n<td>-0.029999999999999583</td>\n</tr>\n<tr>\n<td>en-exp-02</td>\n<td>ElastiNet with classification mask</td>\n<td>0.020000000000000462</td>\n</tr>\n<tr>\n<td>ri-exp-06</td>\n<td>Ridge regression with Nelson Alen targets and classification mask</td>\n<td>-0.029999999999999583</td>\n</tr>\n<tr>\n<td>tabm-exp-02</td>\n<td>TabM Model</td>\n<td>0.0600000000000005</td>\n</tr>\n<tr>\n<td>nn-exp-01</td>\n<td>Neural Network with 2 targets into 1 conversion</td>\n<td>-0.05999999999999961</td>\n</tr>\n<tr>\n<td>lgbm-exp-01</td>\n<td>LGBM with Kaplan Meier targets</td>\n<td>-0.0499999999999996</td>\n</tr>\n<tr>\n<td>nn-exp-06</td>\n<td>Refactoring Pairwise Ranking Network, thanks <a href=\"https://www.kaggle.com/albansteff\" target=\"_blank\">@albansteff</a></td>\n<td>-0.0499999999999996</td>\n</tr>\n<tr>\n<td>xgboost-exp-05</td>\n<td>XGBoost with Kaplan Meier targets tuned parameters</td>\n<td>0.04000000000000048</td>\n</tr>\n<tr>\n<td>lir-exp-01</td>\n<td>Linear regression with Kaplan Meier targets</td>\n<td>-0.019999999999999574</td>\n</tr>\n<tr>\n<td>lgbm-exp-04</td>\n<td>LGBM with CoxPHFitter targets</td>\n<td>0.020000000000000462</td>\n</tr>\n<tr>\n<td>nn-exp-05</td>\n<td>Neural Network with some pre processing applied</td>\n<td>0.010000000000000453</td>\n</tr>\n<tr>\n<td>lgbm-exp-06</td>\n<td>LGBM with Nelson Alen Targets</td>\n<td>-0.009999999999999565</td>\n</tr>\n<tr>\n<td>nn-exp-02</td>\n<td>Neural network with varied data pre processing</td>\n<td>0.010000000000000453</td>\n</tr>\n<tr>\n<td>xgboost-exp-01</td>\n<td>XGBoost with Kaplan Meier targets</td>\n<td>4.440892098500626e-16</td>\n</tr>\n<tr>\n<td>tt-exp-01</td>\n<td>Table Transformers Kaplan Meier Targets</td>\n<td>4.440892098500626e-16</td>\n</tr>\n</tbody>\n</table>\n<p>For more details about model training and target preparation look out the corresponding notebooks in my GitHub repo. Experiment name is the notebook name in the repo.</p>\n<h2>Final Submission CV and LB :</h2>\n<table>\n<thead>\n<tr>\n<th>Description</th>\n<th>CV</th>\n<th>Public LB</th>\n<th>Private LB</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Ensemble of above models with weights and rankdata</td>\n<td>0.688</td>\n<td>0.693</td>\n<td>0.694</td>\n</tr>\n</tbody>\n</table>\n<h2>Acknowledgments</h2>\n<p>I would like to thank everyone who shared during the competition. I learned a lot and will try to apply all the learning in the next competition. Also, a special thanks to amazing notebooks by <a href=\"https://www.kaggle.com/cdeotte\" target=\"_blank\">@cdeotte</a> for his detailed discussions and starter notebooks.</p>",
  "comments": [
    {
      "id": 3150363,
      "author_name": "Darwish 2030",
      "author_url": "",
      "post_date": "2025-03-15T12:09:04.327000",
      "content": "<p>A simple yet powerful approach with diverse models and solid generalization</p>",
      "votes": 1,
      "replies": []
    }
  ],
  "comment_count": 1,
  "messages": [
    {
      "id": 3142916,
      "postDate": "2025-03-06T18:46:51.337Z",
      "content": "<p>Thank you Kaggle staff and competition organizers for such a interesting competition. Also, thanks to everyone for sharing during the competition. I learned lot of things in this competition from exploring different tabular model to ensembling them and about survival analysis data.</p>\n<p>I have open sourced almost all my training notebooks in the GitHub account. here is the link : <a href=\"https://github.com/jaytonde/Kaggle-CIBMTR-2024\" target=\"_blank\">https://github.com/jaytonde/Kaggle-CIBMTR-2024</a></p>\n<p>I have also made my final inference notebook public here : <a href=\"https://www.kaggle.com/code/jaytonde/hill-climbing-submission\" target=\"_blank\">https://www.kaggle.com/code/jaytonde/hill-climbing-submission</a></p>\n<p>I did not maintained the code well cause of shortage of time so reach out to me in case of any doubts. </p>\n<p>My solution is very simple yet generalized cause I do not have much gap in CV, LB and Private LB.<br>\nI have performed multiple experiments with different model and target preparation techniques and my final solution is just hill climbing of this experiments.</p>\n<h2>Folding strategy</h2>\n<p>As per the discussions in the competition about folding strategies, I decided to do 10 random folds, as 5 folds stratified by race wasn't beneficial.</p>\n<h2>Ensemble</h2>\n<p>Final solution have diverse ensemble of neural networks, XGBoost, CatBoost, LGBM, Lasso regression,  TabFPN, Support Vector Regression, Tablenet, torch surv,  Ridge Regression, TabM, Linear Regression, Table Transformer.</p>\n<p>Following is my experiments with respective weights in hill climbing ensemble.<br>\nFirst best model having experiment name prlnn-exp-01 which is Refactoring Pairwise Ranking Network with classification mask and 0.2 shift.</p>\n<table>\n<thead>\n<tr>\n<th>Experiment</th>\n<th>Description</th>\n<th>Weight</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>catboost-exp-05</td>\n<td>CatBoost with Kaplan Meier targets and classification mask</td>\n<td>0.48000000000000087</td>\n</tr>\n<tr>\n<td>xgboost-exp-09</td>\n<td>XGBoost with Monotone constraints and  Kaplan Meier targets</td>\n<td>0.2700000000000007</td>\n</tr>\n<tr>\n<td>lgbm-exp-08</td>\n<td>LGBM with BreslowFlemingHarringtonFitter targets</td>\n<td>-0.20999999999999974</td>\n</tr>\n<tr>\n<td>catboost-exp-01</td>\n<td>CatBoost with Kaplan Meier targets</td>\n<td>0.10000000000000053</td>\n</tr>\n<tr>\n<td>lasso-exp-01</td>\n<td>Lasso regressor with Kaplan Meier targets</td>\n<td>-0.03999999999999959</td>\n</tr>\n<tr>\n<td>nn-exp-04</td>\n<td>Neural Network having classification mask and 0.1 shift</td>\n<td>0.12000000000000055</td>\n</tr>\n<tr>\n<td>svr-exp-06</td>\n<td>Support vector regression with Nelson Aalen Fitter targets and classification mask</td>\n<td>-0.0499999999999996</td>\n</tr>\n<tr>\n<td>ds-exp-01</td>\n<td>CoxPH model</td>\n<td>0.04000000000000048</td>\n</tr>\n<tr>\n<td>rf-exp-05</td>\n<td>Random Forest with Kaplan Meier targets and classification mask</td>\n<td>-0.05999999999999961</td>\n</tr>\n<tr>\n<td>svr-exp-01</td>\n<td>Support vector regression with Kaplan Meier targets</td>\n<td>-0.03999999999999959</td>\n</tr>\n<tr>\n<td>tf-exp-01</td>\n<td>tabpfn with Kaplan Meier targets</td>\n<td>0.04000000000000048</td>\n</tr>\n<tr>\n<td>catboost-exp-03</td>\n<td>CatBoost with Nelson Alen targets</td>\n<td>-0.03999999999999959</td>\n</tr>\n<tr>\n<td>catboost-exp-06</td>\n<td>CatBoost with Nelson Aalen Fitter targets and classification mask</td>\n<td>0.0600000000000005</td>\n</tr>\n<tr>\n<td>tn-exp-02</td>\n<td>Tablenet</td>\n<td>0.03000000000000047</td>\n</tr>\n<tr>\n<td>xgboost-exp-02</td>\n<td>XGBoost with Cox Loss</td>\n<td>-0.0499999999999996</td>\n</tr>\n<tr>\n<td>catboost-exp-04</td>\n<td>CatBoost with CoxPHFitter targets</td>\n<td>0.020000000000000462</td>\n</tr>\n<tr>\n<td>lgbm-exp-03</td>\n<td>LGBM with Nelson Alen targets</td>\n<td>-0.029999999999999583</td>\n</tr>\n<tr>\n<td>ts-exp-01</td>\n<td>Torch Surv model</td>\n<td>-0.019999999999999574</td>\n</tr>\n<tr>\n<td>xgboost-exp-10</td>\n<td></td>\n<td>0.04000000000000048</td>\n</tr>\n<tr>\n<td>xgboost-exp-06</td>\n<td>XGBoost with Nelson Aalen Fitter targets and classification mask</td>\n<td>-0.029999999999999583</td>\n</tr>\n<tr>\n<td>en-exp-02</td>\n<td>ElastiNet with classification mask</td>\n<td>0.020000000000000462</td>\n</tr>\n<tr>\n<td>ri-exp-06</td>\n<td>Ridge regression with Nelson Alen targets and classification mask</td>\n<td>-0.029999999999999583</td>\n</tr>\n<tr>\n<td>tabm-exp-02</td>\n<td>TabM Model</td>\n<td>0.0600000000000005</td>\n</tr>\n<tr>\n<td>nn-exp-01</td>\n<td>Neural Network with 2 targets into 1 conversion</td>\n<td>-0.05999999999999961</td>\n</tr>\n<tr>\n<td>lgbm-exp-01</td>\n<td>LGBM with Kaplan Meier targets</td>\n<td>-0.0499999999999996</td>\n</tr>\n<tr>\n<td>nn-exp-06</td>\n<td>Refactoring Pairwise Ranking Network, thanks <a href=\"https://www.kaggle.com/albansteff\" target=\"_blank\">@albansteff</a></td>\n<td>-0.0499999999999996</td>\n</tr>\n<tr>\n<td>xgboost-exp-05</td>\n<td>XGBoost with Kaplan Meier targets tuned parameters</td>\n<td>0.04000000000000048</td>\n</tr>\n<tr>\n<td>lir-exp-01</td>\n<td>Linear regression with Kaplan Meier targets</td>\n<td>-0.019999999999999574</td>\n</tr>\n<tr>\n<td>lgbm-exp-04</td>\n<td>LGBM with CoxPHFitter targets</td>\n<td>0.020000000000000462</td>\n</tr>\n<tr>\n<td>nn-exp-05</td>\n<td>Neural Network with some pre processing applied</td>\n<td>0.010000000000000453</td>\n</tr>\n<tr>\n<td>lgbm-exp-06</td>\n<td>LGBM with Nelson Alen Targets</td>\n<td>-0.009999999999999565</td>\n</tr>\n<tr>\n<td>nn-exp-02</td>\n<td>Neural network with varied data pre processing</td>\n<td>0.010000000000000453</td>\n</tr>\n<tr>\n<td>xgboost-exp-01</td>\n<td>XGBoost with Kaplan Meier targets</td>\n<td>4.440892098500626e-16</td>\n</tr>\n<tr>\n<td>tt-exp-01</td>\n<td>Table Transformers Kaplan Meier Targets</td>\n<td>4.440892098500626e-16</td>\n</tr>\n</tbody>\n</table>\n<p>For more details about model training and target preparation look out the corresponding notebooks in my GitHub repo. Experiment name is the notebook name in the repo.</p>\n<h2>Final Submission CV and LB :</h2>\n<table>\n<thead>\n<tr>\n<th>Description</th>\n<th>CV</th>\n<th>Public LB</th>\n<th>Private LB</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Ensemble of above models with weights and rankdata</td>\n<td>0.688</td>\n<td>0.693</td>\n<td>0.694</td>\n</tr>\n</tbody>\n</table>\n<h2>Acknowledgments</h2>\n<p>I would like to thank everyone who shared during the competition. I learned a lot and will try to apply all the learning in the next competition. Also, a special thanks to amazing notebooks by <a href=\"https://www.kaggle.com/cdeotte\" target=\"_blank\">@cdeotte</a> for his detailed discussions and starter notebooks.</p>",
      "rawMarkdown": "Thank you Kaggle staff and competition organizers for such a interesting competition. Also, thanks to everyone for sharing during the competition. I learned lot of things in this competition from exploring different tabular model to ensembling them and about survival analysis data.\n\nI have open sourced almost all my training notebooks in the GitHub account. here is the link : https://github.com/jaytonde/Kaggle-CIBMTR-2024\n\nI have also made my final inference notebook public here : https://www.kaggle.com/code/jaytonde/hill-climbing-submission\n\nI did not maintained the code well cause of shortage of time so reach out to me in case of any doubts. \n\nMy solution is very simple yet generalized cause I do not have much gap in CV, LB and Private LB.\nI have performed multiple experiments with different model and target preparation techniques and my final solution is just hill climbing of this experiments.\n\n\n## Folding strategy\nAs per the discussions in the competition about folding strategies, I decided to do 10 random folds, as 5 folds stratified by race wasn't beneficial.\n\n\n## Ensemble\nFinal solution have diverse ensemble of neural networks, XGBoost, CatBoost, LGBM, Lasso regression,  TabFPN, Support Vector Regression, Tablenet, torch surv,  Ridge Regression, TabM, Linear Regression, Table Transformer.\n\nFollowing is my experiments with respective weights in hill climbing ensemble.\nFirst best model having experiment name prlnn-exp-01 which is Refactoring Pairwise Ranking Network with classification mask and 0.2 shift.\n\n| Experiment |  Description  | Weight |\n|------------|--------------------|--------|\n| catboost-exp-05 | CatBoost with Kaplan Meier targets and classification mask | 0.48000000000000087 |\n| xgboost-exp-09 | XGBoost with Monotone constraints and  Kaplan Meier targets| 0.2700000000000007 |\n| lgbm-exp-08 |  LGBM with BreslowFlemingHarringtonFitter targets | -0.20999999999999974 |\n| catboost-exp-01 | CatBoost with Kaplan Meier targets | 0.10000000000000053 |\n| lasso-exp-01 | Lasso regressor with Kaplan Meier targets | -0.03999999999999959 |\n| nn-exp-04 | Neural Network having classification mask and 0.1 shift | 0.12000000000000055 |\n| svr-exp-06 | Support vector regression with Nelson Aalen Fitter targets and classification mask| -0.0499999999999996 |\n| ds-exp-01 | CoxPH model |  0.04000000000000048 |\n| rf-exp-05 | Random Forest with Kaplan Meier targets and classification mask | -0.05999999999999961 |\n| svr-exp-01 | Support vector regression with Kaplan Meier targets | -0.03999999999999959 |\n| tf-exp-01 | tabpfn with Kaplan Meier targets | 0.04000000000000048 |\n| catboost-exp-03 | CatBoost with Nelson Alen targets | -0.03999999999999959 |\n| catboost-exp-06 | CatBoost with Nelson Aalen Fitter targets and classification mask | 0.0600000000000005 |\n| tn-exp-02 | Tablenet | 0.03000000000000047 |\n| xgboost-exp-02 | XGBoost with Cox Loss| -0.0499999999999996 |\n| catboost-exp-04 | CatBoost with CoxPHFitter targets | 0.020000000000000462 |\n| lgbm-exp-03 | LGBM with Nelson Alen targets| -0.029999999999999583 |\n| ts-exp-01 | Torch Surv model | -0.019999999999999574 |\n| xgboost-exp-10 | | 0.04000000000000048 |\n| xgboost-exp-06 | XGBoost with Nelson Aalen Fitter targets and classification mask | -0.029999999999999583 |\n| en-exp-02 | ElastiNet with classification mask | 0.020000000000000462 |\n| ri-exp-06 | Ridge regression with Nelson Alen targets and classification mask | -0.029999999999999583 |\n| tabm-exp-02 | TabM Model | 0.0600000000000005 |\n| nn-exp-01 | Neural Network with 2 targets into 1 conversion | -0.05999999999999961 |\n| lgbm-exp-01 | LGBM with Kaplan Meier targets | -0.0499999999999996 |\n| nn-exp-06 | Refactoring Pairwise Ranking Network, thanks @albansteff | -0.0499999999999996 |\n| xgboost-exp-05 | XGBoost with Kaplan Meier targets tuned parameters | 0.04000000000000048 |\n| lir-exp-01 | Linear regression with Kaplan Meier targets  | -0.019999999999999574 |\n| lgbm-exp-04 | LGBM with CoxPHFitter targets | 0.020000000000000462 |\n| nn-exp-05 | Neural Network with some pre processing applied | 0.010000000000000453 |\n| lgbm-exp-06 | LGBM with Nelson Alen Targets | -0.009999999999999565 |\n| nn-exp-02 | Neural network with varied data pre processing | 0.010000000000000453 |\n| xgboost-exp-01 | XGBoost with Kaplan Meier targets | 4.440892098500626e-16 |\n| tt-exp-01 | Table Transformers Kaplan Meier Targets | 4.440892098500626e-16 |\n\nFor more details about model training and target preparation look out the corresponding notebooks in my GitHub repo. Experiment name is the notebook name in the repo.\n\n## Final Submission CV and LB : \n| Description | CV | Public LB | Private LB |\n| --- | ---------------------------------- |---------|--------|\n|  Ensemble of above models with weights and rankdata | 0.688 | 0.693 | 0.694 |\n\n\n## Acknowledgments\nI would like to thank everyone who shared during the competition. I learned a lot and will try to apply all the learning in the next competition. Also, a special thanks to amazing notebooks by @cdeotte for his detailed discussions and starter notebooks.",
      "votes": 7
    },
    {
      "id": 3150363,
      "postDate": "2025-03-15T12:09:04.327Z",
      "content": "<p>A simple yet powerful approach with diverse models and solid generalization</p>",
      "rawMarkdown": "A simple yet powerful approach with diverse models and solid generalization",
      "votes": 1
    }
  ],
  "complete": true,
  "source": "live",
  "fetched_at": "2026-10-19T19:49:29Z",
  "competition_id": 70942,
  "competition_slug": "equity-post-HCT-survival-predictions",
  "team_id": 13072603,
  "solution_url": "/competitions/equity-post-HCT-survival-predictions/writeups/jaydev-tonde-22nd-place-solution-with-code"
}