{
  "id": 59872,
  "title": "35th place: squeezing out the last -0.0011 RMSE",
  "url": "/competitions/avito-demand-prediction/writeups/harlan-seymour-35th-place-squeezing-out-the-last-0",
  "author_name": "",
  "post_date": "2018-07-01T03:27:33.153Z",
  "votes": 51,
  "comment_count": 21,
  "views": 0,
  "content": "<p>I will not bore everyone with a complete overview of my 35th place solo solution.  I can't wait to read over the actual top places solutions, especially <a href=\"https://www.kaggle.com/xiaozhouwang\">Little Boat</a>'s who I have learned so much from!!  Instead, I will go over how I squeezed the last -0.0011 out of my RMSE score, -0.0001 to -0.0003 at a time.  It took a lot of experimenting to find what worked.</p>\n\n<p>First a quick overview of my basic approach.  I did a lot of feature engineering ending up with 170 numerical features derived from text properties, image properties, mining of test_active/train_active, price encodings, categorical stats, polynomial features, etc.  </p>\n\n<p>I had a team of GBT models (XGBoost and LightGBM) and neural net models (Keras).  My word embedding was created entirely from Avito text.  My GBT's included Tfidf and Countv on text, as well as <a href=\"https://github.com/nadbordrozd/blog_stuff/blob/master/classification_w2v/benchmarking_python3.ipynb\">TfidfEmbeddingVectorizer</a> features.  My NN's were BiLSTM/Conv1D and Conv1D/Conv1D similar to those in my DonorsChoose.org playground competition <a href=\"https://www.kaggle.com/shadowwarrior/1st-place-solution\">1st place solution</a>.  </p>\n\n<p>At first I linearly stacked these models using out-of-fold predictions.   I was at something like RMSE 0.2178 on the PLB, and searching for how to further reduce my RMSE.  What worked:</p>\n\n<p>1.) -0.0002: I did an DataFrame corr() on all of my numerical features, and pruned out features with correlations above 0.92.<br>\n2.) -0.0003: For diversity I added into my stacker LR, GBT and NN models that worked exclusively on just numerical features, on just categorical features, on just text features and on just images.  Individually these models scored poorly, but they helped the stack.<br>\n3.) -0.0002: Non-linear stacking with XGBoost<br>\n4.) -0.0002: Add in categorical features and price into the stacker, which turn out to be helpful segmenting the predictions.<br>\n5.) -0.0001: Using CatBoost as non-linear stacker!  CatBoost didn't work well for me as a base model, but it's target encoding of categoricals helped with stacking.<br>\n6.) -0.0001: Stacker of stackers!  I stacked slight variations of my best XGBoost and CatBoost stackers.</p>\n\n<p>Thank you to Kaggle &amp; Avito for a fun competition, and fellow Kagglers for pushing me to squeeze out those last -0.0001 RMSE's!</p>",
  "messages": [
    {
      "id": "349222",
      "postDate": "06/28/2018 00:09:07",
      "content": "<p>I will not bore everyone with a complete overview of my 35th place solo solution.  I can't wait to read over the actual top places solutions, especially <a href=\"https://www.kaggle.com/xiaozhouwang\">Little Boat</a>'s who I have learned so much from!!  Instead, I will go over how I squeezed the last -0.0011 out of my RMSE score, -0.0001 to -0.0003 at a time.  It took a lot of experimenting to find what worked.</p>\n\n<p>First a quick overview of my basic approach.  I did a lot of feature engineering ending up with 170 numerical features derived from text properties, image properties, mining of test_active/train_active, price encodings, categorical stats, polynomial features, etc.  </p>\n\n<p>I had a team of GBT models (XGBoost and LightGBM) and neural net models (Keras).  My word embedding was created entirely from Avito text.  My GBT's included Tfidf and Countv on text, as well as <a href=\"https://github.com/nadbordrozd/blog_stuff/blob/master/classification_w2v/benchmarking_python3.ipynb\">TfidfEmbeddingVectorizer</a> features.  My NN's were BiLSTM/Conv1D and Conv1D/Conv1D similar to those in my DonorsChoose.org playground competition <a href=\"https://www.kaggle.com/shadowwarrior/1st-place-solution\">1st place solution</a>.  </p>\n\n<p>At first I linearly stacked these models using out-of-fold predictions.   I was at something like RMSE 0.2178 on the PLB, and searching for how to further reduce my RMSE.  What worked:</p>\n\n<p>1.) -0.0002: I did an DataFrame corr() on all of my numerical features, and pruned out features with correlations above 0.92.<br>\n2.) -0.0003: For diversity I added into my stacker LR, GBT and NN models that worked exclusively on just numerical features, on just categorical features, on just text features and on just images.  Individually these models scored poorly, but they helped the stack.<br>\n3.) -0.0002: Non-linear stacking with XGBoost<br>\n4.) -0.0002: Add in categorical features and price into the stacker, which turn out to be helpful segmenting the predictions.<br>\n5.) -0.0001: Using CatBoost as non-linear stacker!  CatBoost didn't work well for me as a base model, but it's target encoding of categoricals helped with stacking.<br>\n6.) -0.0001: Stacker of stackers!  I stacked slight variations of my best XGBoost and CatBoost stackers.</p>\n\n<p>Thank you to Kaggle &amp; Avito for a fun competition, and fellow Kagglers for pushing me to squeeze out those last -0.0001 RMSE's!</p>",
      "rawMarkdown": "I will not bore everyone with a complete overview of my 35th place solo solution.  I can't wait to read over the actual top places solutions, especially [Little Boat][1]'s who I have learned so much from!!  Instead, I will go over how I squeezed the last -0.0011 out of my RMSE score, -0.0001 to -0.0003 at a time.  It took a lot of experimenting to find what worked.\n\nFirst a quick overview of my basic approach.  I did a lot of feature engineering ending up with 170 numerical features derived from text properties, image properties, mining of test_active/train_active, price encodings, categorical stats, polynomial features, etc.  \n\nI had a team of GBT models (XGBoost and LightGBM) and neural net models (Keras).  My word embedding was created entirely from Avito text.  My GBT's included Tfidf and Countv on text, as well as [TfidfEmbeddingVectorizer][2] features.  My NN's were BiLSTM/Conv1D and Conv1D/Conv1D similar to those in my DonorsChoose.org playground competition [1st place solution][3].  \n\nAt first I linearly stacked these models using out-of-fold predictions.   I was at something like RMSE 0.2178 on the PLB, and searching for how to further reduce my RMSE.  What worked:\n\n1.) -0.0002: I did an DataFrame corr() on all of my numerical features, and pruned out features with correlations above 0.92.<br>\n2.) -0.0003: For diversity I added into my stacker LR, GBT and NN models that worked exclusively on just numerical features, on just categorical features, on just text features and on just images.  Individually these models scored poorly, but they helped the stack.<br>\n3.) -0.0002: Non-linear stacking with XGBoost<br>\n4.) -0.0002: Add in categorical features and price into the stacker, which turn out to be helpful segmenting the predictions.<br>\n5.) -0.0001: Using CatBoost as non-linear stacker!  CatBoost didn't work well for me as a base model, but it's target encoding of categoricals helped with stacking.<br>\n6.) -0.0001: Stacker of stackers!  I stacked slight variations of my best XGBoost and CatBoost stackers.\n\nThank you to Kaggle &amp; Avito for a fun competition, and fellow Kagglers for pushing me to squeeze out those last -0.0001 RMSE's!\n\n  [1]: https://www.kaggle.com/xiaozhouwang\n  [2]: https://github.com/nadbordrozd/blog_stuff/blob/master/classification_w2v/benchmarking_python3.ipynb\n  [3]: https://www.kaggle.com/shadowwarrior/1st-place-solution",
      "votes": null
    },
    {
      "id": "349232",
      "postDate": "06/28/2018 00:23:15",
      "content": "<p>Thanks @Harlen for sharing and congratulations on a strong finish.</p>",
      "rawMarkdown": "Thanks @Harlen for sharing and congratulations on a strong finish.",
      "votes": null
    },
    {
      "id": "349237",
      "postDate": "06/28/2018 00:31:00",
      "content": "<p>Thanks @Harlen</p>\n\n<p>Lovely to see you compete here after the donorsChoose competition and looking forward to seeing you in other competitions.</p>\n\n<p>Happy Kaggling.</p>",
      "rawMarkdown": "Thanks @Harlen\n\nLovely to see you compete here after the donorsChoose competition and looking forward to seeing you in other competitions.\n\nHappy Kaggling.",
      "votes": null
    },
    {
      "id": "349248",
      "postDate": "06/28/2018 00:47:10",
      "content": "<p>Very step reduce rsme is very detail. Thanks sharing your excellent forward technology.</p>",
      "rawMarkdown": "Very step reduce rsme is very detail. Thanks sharing your excellent forward technology.",
      "votes": null
    },
    {
      "id": "349255",
      "postDate": "06/28/2018 00:59:12",
      "content": "<p>Thanks for sharing.</p>",
      "rawMarkdown": "Thanks for sharing.",
      "votes": null
    },
    {
      "id": "349258",
      "postDate": "06/28/2018 01:02:40",
      "content": "<p>Congratulations! I need to learn many of the techniques you've outlined here.</p>",
      "rawMarkdown": "Congratulations! I need to learn many of the techniques you've outlined here.",
      "votes": null
    },
    {
      "id": "349264",
      "postDate": "06/28/2018 01:11:37",
      "content": "<p>Thanks Harlan. You did very impressively for a soloist and I think a lot of us (including our team) eagerly followed <a href=\"https://www.kaggle.com/shadowwarrior/1st-place-solution\">https://www.kaggle.com/shadowwarrior/1st-place-solution</a> when plotting our plan of attack for this competition.</p>",
      "rawMarkdown": "Thanks Harlan. You did very impressively for a soloist and I think a lot of us (including our team) eagerly followed https://www.kaggle.com/shadowwarrior/1st-place-solution when plotting our plan of attack for this competition.",
      "votes": null
    },
    {
      "id": "349270",
      "postDate": "06/28/2018 01:18:55",
      "content": "<p>Much appreciated and congrats on 14th place, Peter!</p>",
      "rawMarkdown": "Much appreciated and congrats on 14th place, Peter!",
      "votes": null
    },
    {
      "id": "349272",
      "postDate": "06/28/2018 01:20:28",
      "content": "<p>Thanks!  Stacking was really powerful in this competition.</p>",
      "rawMarkdown": "Thanks!  Stacking was really powerful in this competition.",
      "votes": null
    },
    {
      "id": "349274",
      "postDate": "06/28/2018 01:21:26",
      "content": "<p>Thanks! It's a true bummer to be one short of a gold medal, but I guess someone has to be there. :) We did way better and pushed way farther than I ever expected, but the rest of the competition was very fierce.</p>",
      "rawMarkdown": "Thanks! It's a true bummer to be one short of a gold medal, but I guess someone has to be there. :) We did way better and pushed way farther than I ever expected, but the rest of the competition was very fierce.",
      "votes": null
    },
    {
      "id": "349275",
      "postDate": "06/28/2018 01:22:41",
      "content": "<p>I used the category hashing you introduced in <a href=\"https://www.kaggle.com/c/donorschoose-application-screening\">DonorsChoose.org</a> in my NN!  It works better for me than entity embedding.</p>",
      "rawMarkdown": "I used the category hashing you introduced in [DonorsChoose.org][1] in my NN!  It works better for me than entity embedding.\n\n  [1]: https://www.kaggle.com/c/donorschoose-application-screening",
      "votes": null
    },
    {
      "id": "349277",
      "postDate": "06/28/2018 01:23:23",
      "content": "<p>Thanks DUO.  I enjoyed reading your many contributions in this competition.</p>",
      "rawMarkdown": "Thanks DUO.  I enjoyed reading your many contributions in this competition.",
      "votes": null
    },
    {
      "id": "349279",
      "postDate": "06/28/2018 01:25:08",
      "content": "<p>Thanks Ahmed.  I thought ml-team was destined for gold.  You came very close.</p>",
      "rawMarkdown": "Thanks Ahmed.  I thought ml-team was destined for gold.  You came very close.",
      "votes": null
    },
    {
      "id": "349281",
      "postDate": "06/28/2018 01:26:13",
      "content": "<p>Thanks YaGana!</p>",
      "rawMarkdown": "Thanks YaGana!",
      "votes": null
    },
    {
      "id": "349288",
      "postDate": "06/28/2018 01:44:03",
      "content": "<p>Thanks. </p>\n\n<p>I really wanted to have fun and learn in the competition and thanks to everyone, i did.</p>",
      "rawMarkdown": "Thanks. \n\nI really wanted to have fun and learn in the competition and thanks to everyone, i did.",
      "votes": null
    },
    {
      "id": "349289",
      "postDate": "06/28/2018 01:44:39",
      "content": "<p>Congrats Harlan  and thanks for sharing ! </p>\n\n<p>This competition was hard and has probably set  a record  of the least solo competitors in the top 50.</p>\n\n<p>You did a really impressive work.</p>",
      "rawMarkdown": "Congrats Harlan  and thanks for sharing ! \n\nThis competition was hard and has probably set  a record  of the least solo competitors in the top 50.\n\nYou did a really impressive work.",
      "votes": null
    },
    {
      "id": "349319",
      "postDate": "06/28/2018 02:26:49",
      "content": "<p>Thank you, Serigne, and congrats to you for continuing your string of top finishes!</p>",
      "rawMarkdown": "Thank you, Serigne, and congrats to you for continuing your string of top finishes!",
      "votes": null
    },
    {
      "id": "349343",
      "postDate": "06/28/2018 02:44:57",
      "content": "<p>Congrats Harlan.... </p>",
      "rawMarkdown": "Congrats Harlan....",
      "votes": null
    },
    {
      "id": "349691",
      "postDate": "06/28/2018 13:44:05",
      "content": "<p>I struggled a lot trying to reduce my RMSE score. With this post I have now learnt that the improvement in score will not be drastic. It is slow and cumulative.</p>\n\n<p>Cheers Harlan!</p>",
      "rawMarkdown": "I struggled a lot trying to reduce my RMSE score. With this post I have now learnt that the improvement in score will not be drastic. It is slow and cumulative.\n\nCheers Harlan!",
      "votes": null
    },
    {
      "id": "349695",
      "postDate": "06/28/2018 13:56:46",
      "content": "<p>@Abdul: Slow, but educational.  Always cool when something unexpected works, like for me CatBoost vs XGBoost as a stacker.</p>",
      "rawMarkdown": "Abdul: Slow, but educational.  Always cool when something unexpected works, like for me CatBoost vs XGBoost as a stacker.",
      "votes": null
    },
    {
      "id": "349698",
      "postDate": "06/28/2018 14:03:30",
      "content": "<p>Sure Harlan. :) </p>\n\n<p>+1 to the list of items I have learnt from this competition. </p>",
      "rawMarkdown": "Sure Harlan. :) \n\n+1 to the list of items I have learnt from this competition.",
      "votes": null
    },
    {
      "id": "349766",
      "postDate": "06/28/2018 15:57:40",
      "content": "<p>Congrats Harlan. I was eagerly looking for your solutions!!!</p>",
      "rawMarkdown": "Congrats Harlan. I was eagerly looking for your solutions!!!",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 349232,
      "author_name": "sheriytm",
      "author_url": "",
      "post_date": "06/28/2018 00:23:15",
      "content": "<p>Thanks @Harlen for sharing and congratulations on a strong finish.</p>",
      "votes": null,
      "replies": [
        {
          "id": 349281,
          "author_name": "shadowwarrior",
          "author_url": "",
          "post_date": "06/28/2018 01:26:13",
          "content": "<p>Thanks YaGana!</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 349237,
      "author_name": "ahmedalesh",
      "author_url": "",
      "post_date": "06/28/2018 00:31:00",
      "content": "<p>Thanks @Harlen</p>\n\n<p>Lovely to see you compete here after the donorsChoose competition and looking forward to seeing you in other competitions.</p>\n\n<p>Happy Kaggling.</p>",
      "votes": null,
      "replies": [
        {
          "id": 349279,
          "author_name": "shadowwarrior",
          "author_url": "",
          "post_date": "06/28/2018 01:25:08",
          "content": "<p>Thanks Ahmed.  I thought ml-team was destined for gold.  You came very close.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 349288,
          "author_name": "ahmedalesh",
          "author_url": "",
          "post_date": "06/28/2018 01:44:03",
          "content": "<p>Thanks. </p>\n\n<p>I really wanted to have fun and learn in the competition and thanks to everyone, i did.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 349248,
      "author_name": "classtag",
      "author_url": "",
      "post_date": "06/28/2018 00:47:10",
      "content": "<p>Very step reduce rsme is very detail. Thanks sharing your excellent forward technology.</p>",
      "votes": null,
      "replies": [
        {
          "id": 349277,
          "author_name": "shadowwarrior",
          "author_url": "",
          "post_date": "06/28/2018 01:23:23",
          "content": "<p>Thanks DUO.  I enjoyed reading your many contributions in this competition.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 349255,
      "author_name": "qinhui1999",
      "author_url": "",
      "post_date": "06/28/2018 00:59:12",
      "content": "<p>Thanks for sharing.</p>",
      "votes": null,
      "replies": [
        {
          "id": 349275,
          "author_name": "shadowwarrior",
          "author_url": "",
          "post_date": "06/28/2018 01:22:41",
          "content": "<p>I used the category hashing you introduced in <a href=\"https://www.kaggle.com/c/donorschoose-application-screening\">DonorsChoose.org</a> in my NN!  It works better for me than entity embedding.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 349258,
      "author_name": "eigenvector",
      "author_url": "",
      "post_date": "06/28/2018 01:02:40",
      "content": "<p>Congratulations! I need to learn many of the techniques you've outlined here.</p>",
      "votes": null,
      "replies": [
        {
          "id": 349272,
          "author_name": "shadowwarrior",
          "author_url": "",
          "post_date": "06/28/2018 01:20:28",
          "content": "<p>Thanks!  Stacking was really powerful in this competition.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 349264,
      "author_name": "peterhurford",
      "author_url": "",
      "post_date": "06/28/2018 01:11:37",
      "content": "<p>Thanks Harlan. You did very impressively for a soloist and I think a lot of us (including our team) eagerly followed <a href=\"https://www.kaggle.com/shadowwarrior/1st-place-solution\">https://www.kaggle.com/shadowwarrior/1st-place-solution</a> when plotting our plan of attack for this competition.</p>",
      "votes": null,
      "replies": [
        {
          "id": 349270,
          "author_name": "shadowwarrior",
          "author_url": "",
          "post_date": "06/28/2018 01:18:55",
          "content": "<p>Much appreciated and congrats on 14th place, Peter!</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 349274,
          "author_name": "peterhurford",
          "author_url": "",
          "post_date": "06/28/2018 01:21:26",
          "content": "<p>Thanks! It's a true bummer to be one short of a gold medal, but I guess someone has to be there. :) We did way better and pushed way farther than I ever expected, but the rest of the competition was very fierce.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 349289,
      "author_name": "serigne",
      "author_url": "",
      "post_date": "06/28/2018 01:44:39",
      "content": "<p>Congrats Harlan  and thanks for sharing ! </p>\n\n<p>This competition was hard and has probably set  a record  of the least solo competitors in the top 50.</p>\n\n<p>You did a really impressive work.</p>",
      "votes": null,
      "replies": [
        {
          "id": 349319,
          "author_name": "shadowwarrior",
          "author_url": "",
          "post_date": "06/28/2018 02:26:49",
          "content": "<p>Thank you, Serigne, and congrats to you for continuing your string of top finishes!</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 349343,
      "author_name": "samratp",
      "author_url": "",
      "post_date": "06/28/2018 02:44:57",
      "content": "<p>Congrats Harlan.... </p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 349691,
      "author_name": "abdul0807",
      "author_url": "",
      "post_date": "06/28/2018 13:44:05",
      "content": "<p>I struggled a lot trying to reduce my RMSE score. With this post I have now learnt that the improvement in score will not be drastic. It is slow and cumulative.</p>\n\n<p>Cheers Harlan!</p>",
      "votes": null,
      "replies": [
        {
          "id": 349695,
          "author_name": "shadowwarrior",
          "author_url": "",
          "post_date": "06/28/2018 13:56:46",
          "content": "<p>@Abdul: Slow, but educational.  Always cool when something unexpected works, like for me CatBoost vs XGBoost as a stacker.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 349698,
          "author_name": "abdul0807",
          "author_url": "",
          "post_date": "06/28/2018 14:03:30",
          "content": "<p>Sure Harlan. :) </p>\n\n<p>+1 to the list of items I have learnt from this competition. </p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 349766,
      "author_name": "subikashpal",
      "author_url": "",
      "post_date": "06/28/2018 15:57:40",
      "content": "<p>Congrats Harlan. I was eagerly looking for your solutions!!!</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "349222": "I will not bore everyone with a complete overview of my 35th place solo solution.  I can't wait to read over the actual top places solutions, especially [Little Boat][1]'s who I have learned so much from!!  Instead, I will go over how I squeezed the last -0.0011 out of my RMSE score, -0.0001 to -0.0003 at a time.  It took a lot of experimenting to find what worked.\n\nFirst a quick overview of my basic approach.  I did a lot of feature engineering ending up with 170 numerical features derived from text properties, image properties, mining of test_active/train_active, price encodings, categorical stats, polynomial features, etc.  \n\nI had a team of GBT models (XGBoost and LightGBM) and neural net models (Keras).  My word embedding was created entirely from Avito text.  My GBT's included Tfidf and Countv on text, as well as [TfidfEmbeddingVectorizer][2] features.  My NN's were BiLSTM/Conv1D and Conv1D/Conv1D similar to those in my DonorsChoose.org playground competition [1st place solution][3].  \n\nAt first I linearly stacked these models using out-of-fold predictions.   I was at something like RMSE 0.2178 on the PLB, and searching for how to further reduce my RMSE.  What worked:\n\n1.) -0.0002: I did an DataFrame corr() on all of my numerical features, and pruned out features with correlations above 0.92.<br>\n2.) -0.0003: For diversity I added into my stacker LR, GBT and NN models that worked exclusively on just numerical features, on just categorical features, on just text features and on just images.  Individually these models scored poorly, but they helped the stack.<br>\n3.) -0.0002: Non-linear stacking with XGBoost<br>\n4.) -0.0002: Add in categorical features and price into the stacker, which turn out to be helpful segmenting the predictions.<br>\n5.) -0.0001: Using CatBoost as non-linear stacker!  CatBoost didn't work well for me as a base model, but it's target encoding of categoricals helped with stacking.<br>\n6.) -0.0001: Stacker of stackers!  I stacked slight variations of my best XGBoost and CatBoost stackers.\n\nThank you to Kaggle &amp; Avito for a fun competition, and fellow Kagglers for pushing me to squeeze out those last -0.0001 RMSE's!\n\n  [1]: https://www.kaggle.com/xiaozhouwang\n  [2]: https://github.com/nadbordrozd/blog_stuff/blob/master/classification_w2v/benchmarking_python3.ipynb\n  [3]: https://www.kaggle.com/shadowwarrior/1st-place-solution",
    "349232": "Thanks @Harlen for sharing and congratulations on a strong finish.",
    "349237": "Thanks @Harlen\n\nLovely to see you compete here after the donorsChoose competition and looking forward to seeing you in other competitions.\n\nHappy Kaggling.",
    "349248": "Very step reduce rsme is very detail. Thanks sharing your excellent forward technology.",
    "349255": "Thanks for sharing.",
    "349258": "Congratulations! I need to learn many of the techniques you've outlined here.",
    "349264": "Thanks Harlan. You did very impressively for a soloist and I think a lot of us (including our team) eagerly followed https://www.kaggle.com/shadowwarrior/1st-place-solution when plotting our plan of attack for this competition.",
    "349270": "Much appreciated and congrats on 14th place, Peter!",
    "349272": "Thanks!  Stacking was really powerful in this competition.",
    "349274": "Thanks! It's a true bummer to be one short of a gold medal, but I guess someone has to be there. :) We did way better and pushed way farther than I ever expected, but the rest of the competition was very fierce.",
    "349275": "I used the category hashing you introduced in [DonorsChoose.org][1] in my NN!  It works better for me than entity embedding.\n\n  [1]: https://www.kaggle.com/c/donorschoose-application-screening",
    "349277": "Thanks DUO.  I enjoyed reading your many contributions in this competition.",
    "349279": "Thanks Ahmed.  I thought ml-team was destined for gold.  You came very close.",
    "349281": "Thanks YaGana!",
    "349288": "Thanks. \n\nI really wanted to have fun and learn in the competition and thanks to everyone, i did.",
    "349289": "Congrats Harlan  and thanks for sharing ! \n\nThis competition was hard and has probably set  a record  of the least solo competitors in the top 50.\n\nYou did a really impressive work.",
    "349319": "Thank you, Serigne, and congrats to you for continuing your string of top finishes!",
    "349343": "Congrats Harlan....",
    "349691": "I struggled a lot trying to reduce my RMSE score. With this post I have now learnt that the improvement in score will not be drastic. It is slow and cumulative.\n\nCheers Harlan!",
    "349695": "Abdul: Slow, but educational.  Always cool when something unexpected works, like for me CatBoost vs XGBoost as a stacker.",
    "349698": "Sure Harlan. :) \n\n+1 to the list of items I have learnt from this competition.",
    "349766": "Congrats Harlan. I was eagerly looking for your solutions!!!"
  },
  "source": "meta"
}