{
  "id": 421526,
  "title": "4 th place solution",
  "content": "<p>Hi,</p>\n<p>Given the age of this competition, I'm not sure anyone is reading these notes. But we never know. :-)</p>\n<p>This competition was a bit special because the public leaderboard was calculated on the whole test set. And therefore, no suspense on the result of the private leaderboard which is identical to the public.</p>\n<p>My approach was:</p>\n<ul>\n<li>removal of irrelevant variables using <code>sklearn.feature_selection.mutual_info_classif</code></li>\n<li>Training on several models (<code>SvcSvm, KNeighborsClassifier, HistGradientBoostingClassifier, RidgeClassifierCV, MLPClassifier, RandomForestClassifier,ExtraTreesClassifier,AdaBoostClassifier, GradientBoostingClassifier, LogisticRegression, CatBoostClassifier,LGBMClassifier and XGBClassifier</code>)</li>\n<li>Using Optuna to find the best settings of each</li>\n</ul>\n<p>At the end of this step, I had several trained models with their respective oof files.</p>\n<p>With these new files (predictions + oof ), I generate a new train and test set of 156 features. It is quite a lot.<br>\nI select from these new sets, the best features with <code>RFECV</code>  (Feature ranking with recursive feature elimination). So I keep 9 features from the 156.</p>\n<p>Finally, I trained a model of type LogisticRegression for the final prediction.</p>\n<p>Because the private and public leaderboards were the same, I was able to launch the treatments several times without fear of overfitting.</p>\n<p>Thank to Bharat Rai for organizing this very very long competition</p>\n<p>Regards</p>\n<p>Thierry</p>",
  "comments": [
    {
      "id": 2331703,
      "author_name": "Ravi Ramakrishnan",
      "author_url": "",
      "post_date": "2023-07-05T18:05:18.777000",
      "content": "<p>Hearty congratulations to you for the result! I hope the knowledge gained in this challenge could be put to great use elsewhere. <br>\nI suggest you could try out the <a href=\"https://www.kaggle.com/competitions/icr-identify-age-related-conditions\" target=\"_blank\">ICR</a> challenge too. It is similar to an extent with the challenge herewith and your knowledge gained could be used there to perhaps score a medal too!</p>",
      "votes": 1,
      "replies": [
        {
          "id": 2331728,
          "author_name": "Thierry Neusius",
          "author_url": "",
          "post_date": "2023-07-05T18:22:16.520000",
          "content": "<p>Thank Ravi. I’m already on the ICR competition. </p>",
          "votes": 0,
          "replies": []
        }
      ]
    }
  ],
  "comment_count": 2,
  "messages": [
    {
      "id": 2331703,
      "postDate": "2023-07-05T18:05:18.777Z",
      "content": "<p>Hearty congratulations to you for the result! I hope the knowledge gained in this challenge could be put to great use elsewhere. <br>\nI suggest you could try out the <a href=\"https://www.kaggle.com/competitions/icr-identify-age-related-conditions\" target=\"_blank\">ICR</a> challenge too. It is similar to an extent with the challenge herewith and your knowledge gained could be used there to perhaps score a medal too!</p>",
      "rawMarkdown": "Hearty congratulations to you for the result! I hope the knowledge gained in this challenge could be put to great use elsewhere. \nI suggest you could try out the [ICR](https://www.kaggle.com/competitions/icr-identify-age-related-conditions) challenge too. It is similar to an extent with the challenge herewith and your knowledge gained could be used there to perhaps score a medal too!",
      "votes": 1,
      "replies": [
        {
          "id": 2331728,
          "postDate": "2023-07-05T18:22:16.520Z",
          "content": "<p>Thank Ravi. I’m already on the ICR competition. </p>",
          "rawMarkdown": "Thank Ravi. I’m already on the ICR competition. "
        }
      ]
    },
    {
      "id": 2331643,
      "postDate": "2023-07-05T17:17:35.107Z",
      "content": "<p>Hi,</p>\n<p>Given the age of this competition, I'm not sure anyone is reading these notes. But we never know. :-)</p>\n<p>This competition was a bit special because the public leaderboard was calculated on the whole test set. And therefore, no suspense on the result of the private leaderboard which is identical to the public.</p>\n<p>My approach was:</p>\n<ul>\n<li>removal of irrelevant variables using <code>sklearn.feature_selection.mutual_info_classif</code></li>\n<li>Training on several models (<code>SvcSvm, KNeighborsClassifier, HistGradientBoostingClassifier, RidgeClassifierCV, MLPClassifier, RandomForestClassifier,ExtraTreesClassifier,AdaBoostClassifier, GradientBoostingClassifier, LogisticRegression, CatBoostClassifier,LGBMClassifier and XGBClassifier</code>)</li>\n<li>Using Optuna to find the best settings of each</li>\n</ul>\n<p>At the end of this step, I had several trained models with their respective oof files.</p>\n<p>With these new files (predictions + oof ), I generate a new train and test set of 156 features. It is quite a lot.<br>\nI select from these new sets, the best features with <code>RFECV</code>  (Feature ranking with recursive feature elimination). So I keep 9 features from the 156.</p>\n<p>Finally, I trained a model of type LogisticRegression for the final prediction.</p>\n<p>Because the private and public leaderboards were the same, I was able to launch the treatments several times without fear of overfitting.</p>\n<p>Thank to Bharat Rai for organizing this very very long competition</p>\n<p>Regards</p>\n<p>Thierry</p>",
      "rawMarkdown": "Hi,\n\nGiven the age of this competition, I'm not sure anyone is reading these notes. But we never know. :-)\n\n\nThis competition was a bit special because the public leaderboard was calculated on the whole test set. And therefore, no suspense on the result of the private leaderboard which is identical to the public.\n\nMy approach was:\n* removal of irrelevant variables using ```sklearn.feature_selection.mutual_info_classif```\n* Training on several models (``` SvcSvm, KNeighborsClassifier, HistGradientBoostingClassifier, RidgeClassifierCV, MLPClassifier, RandomForestClassifier,ExtraTreesClassifier,AdaBoostClassifier, GradientBoostingClassifier, LogisticRegression, CatBoostClassifier,LGBMClassifier and XGBClassifier```)\n* Using Optuna to find the best settings of each\n\nAt the end of this step, I had several trained models with their respective oof files.\n\nWith these new files (predictions + oof ), I generate a new train and test set of 156 features. It is quite a lot.\nI select from these new sets, the best features with ```RFECV```  (Feature ranking with recursive feature elimination). So I keep 9 features from the 156.\n\nFinally, I trained a model of type LogisticRegression for the final prediction.\n\nBecause the private and public leaderboards were the same, I was able to launch the treatments several times without fear of overfitting.\n\nThank to Bharat Rai for organizing this very very long competition\n\nRegards\n\nThierry",
      "votes": 1
    }
  ],
  "complete": true,
  "source": "live",
  "fetched_at": "2026-10-20T03:16:49Z",
  "competition_id": 23684,
  "competition_slug": "classification-data-challenge",
  "team_id": 10418255,
  "solution_url": "/competitions/classification-data-challenge/writeups/thierry-neusius-4-th-place-solution"
}