{
  "id": 566858,
  "title": "34th Place. CatBoost with MultiRMSE plus public solutions.",
  "content": "<p>My final solution/ensemble consisted of 4 models. 3 of them are based on public notebooks (maybe with minor modifications): </p>\n<ol>\n<li>AutoGluon on KaplanMeier target</li>\n<li>Event Masked PRL-NN</li>\n<li>XGBoost with Monotonicity</li>\n</ol>\n<p>4th model is CatBoost with MultiRMSE loss and metric functions trained on 3 targets. Also using sample_weight with 1.2 for efs==1 and 0.5 for efs==0 allowed to improve model performance.<br>\nThe weights for the final ensemble were found by scipy.minimize function that had the best CV and the best private LB.<br>\nSo the solution is relatively simple, but it's allowed to take good enough position. Of course, making more efforts on modeling and ensembling would get better position and maybe on the gold zone.</p>",
  "comments": [
    {
      "id": 3143735,
      "author_name": "Viktoria",
      "author_url": "",
      "post_date": "2025-03-07T14:37:42.130000",
      "content": "<p>Congrats! <a href=\"https://www.kaggle.com/andreynesterov\" target=\"_blank\">@andreynesterov</a></p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 3145552,
      "author_name": "Chris Deotte",
      "author_url": "",
      "post_date": "2025-03-10T01:05:45.263000",
      "content": "<p>Great job. I have never used <code>CatBoost with MultiRMSE loss</code> before. I will need to explore this. What multiple targets did you use?</p>",
      "votes": 2,
      "replies": [
        {
          "id": 3145921,
          "author_name": "Andrey Nesterov",
          "author_url": "",
          "post_date": "2025-03-10T11:11:52.560000",
          "content": "<p>Thanks. I used standard targets CoxPHFitter, KaplanMeierFitter and NelsonAalenFitter with StratifiedKFold cv. Yes, for me it was also 1st expirience with such loss. I also tried MultiRMSEWithMissingValues with similar results.</p>",
          "votes": 1,
          "replies": []
        }
      ]
    }
  ],
  "comment_count": 3,
  "messages": [
    {
      "id": 3143352,
      "postDate": "2025-03-07T06:22:50.387Z",
      "content": "<p>My final solution/ensemble consisted of 4 models. 3 of them are based on public notebooks (maybe with minor modifications): </p>\n<ol>\n<li>AutoGluon on KaplanMeier target</li>\n<li>Event Masked PRL-NN</li>\n<li>XGBoost with Monotonicity</li>\n</ol>\n<p>4th model is CatBoost with MultiRMSE loss and metric functions trained on 3 targets. Also using sample_weight with 1.2 for efs==1 and 0.5 for efs==0 allowed to improve model performance.<br>\nThe weights for the final ensemble were found by scipy.minimize function that had the best CV and the best private LB.<br>\nSo the solution is relatively simple, but it's allowed to take good enough position. Of course, making more efforts on modeling and ensembling would get better position and maybe on the gold zone.</p>",
      "rawMarkdown": "My final solution/ensemble consisted of 4 models. 3 of them are based on public notebooks (maybe with minor modifications): \n1. AutoGluon on KaplanMeier target\n1. Event Masked PRL-NN\n1. XGBoost with Monotonicity\n\n4th model is CatBoost with MultiRMSE loss and metric functions trained on 3 targets. Also using sample_weight with 1.2 for efs==1 and 0.5 for efs==0 allowed to improve model performance.\nThe weights for the final ensemble were found by scipy.minimize function that had the best CV and the best private LB.\nSo the solution is relatively simple, but it's allowed to take good enough position. Of course, making more efforts on modeling and ensembling would get better position and maybe on the gold zone.",
      "votes": 9
    },
    {
      "id": 3143735,
      "postDate": "2025-03-07T14:37:42.130Z",
      "content": "<p>Congrats! <a href=\"https://www.kaggle.com/andreynesterov\" target=\"_blank\">@andreynesterov</a></p>",
      "rawMarkdown": "Congrats! @andreynesterov",
      "votes": 1
    },
    {
      "id": 3145552,
      "postDate": "2025-03-10T01:05:45.263Z",
      "content": "<p>Great job. I have never used <code>CatBoost with MultiRMSE loss</code> before. I will need to explore this. What multiple targets did you use?</p>",
      "rawMarkdown": "Great job. I have never used `CatBoost with MultiRMSE loss` before. I will need to explore this. What multiple targets did you use?",
      "votes": 2,
      "replies": [
        {
          "id": 3145921,
          "postDate": "2025-03-10T11:11:52.560Z",
          "content": "<p>Thanks. I used standard targets CoxPHFitter, KaplanMeierFitter and NelsonAalenFitter with StratifiedKFold cv. Yes, for me it was also 1st expirience with such loss. I also tried MultiRMSEWithMissingValues with similar results.</p>",
          "rawMarkdown": "Thanks. I used standard targets CoxPHFitter, KaplanMeierFitter and NelsonAalenFitter with StratifiedKFold cv. Yes, for me it was also 1st expirience with such loss. I also tried MultiRMSEWithMissingValues with similar results.",
          "votes": 1
        }
      ]
    }
  ],
  "complete": true,
  "source": "live",
  "fetched_at": "2026-10-19T19:49:43Z",
  "competition_id": 70942,
  "competition_slug": "equity-post-HCT-survival-predictions",
  "team_id": 13140552,
  "solution_url": "/competitions/equity-post-HCT-survival-predictions/writeups/andrey-nesterov-34th-place-catboost-with-multirmse"
}