{
  "id": 240174,
  "title": "Reflections from 36th place",
  "url": "/competitions/indoor-location-navigation/writeups/john-mitchell-reflections-from-36th-place",
  "author_name": "",
  "post_date": "2021-05-18T18:36:26.366048Z",
  "votes": 24,
  "comment_count": 3,
  "views": 0,
  "content": "<p>I wrote some weeks ago: “<em>What strikes me is the extent to which the Kaggle community has effectively solved this problem - we are now down to locating a phone in a multi-storey building to within an accuracy of about 3.65 metres. Well done to all of you folk who've contributed to this!</em>” Well, that would now be 1.5 metres, and I am even more impressed now than I was then with your collective ingenuity.</p>\n<p>I’ve been involved in this competition from very early on, so long ago that my first submission scored 14.845. Every journey needs to start somewhere, so huge thanks to those who provided the early public models, especially <a href=\"https://www.kaggle.com/ammarali32\" target=\"_blank\">@ammarali32</a>, <a href=\"https://www.kaggle.com/devinanzelmo\" target=\"_blank\">@devinanzelmo</a>, <a href=\"https://www.kaggle.com/hiro5299834\" target=\"_blank\">@hiro5299834</a> &amp; <a href=\"https://www.kaggle.com/jiweiliu\" target=\"_blank\">@jiweiliu</a>. </p>\n<p>I began my journey by concentrating on predicting the floors, which I saw as the easiest aspect to make progress on. Early models often predicted different floors for waypoints in the same path, perhaps a useful indicator of uncertainty. In the early days, inserting my best guess at the floor prediction into any of the then-public models would yield a significant improvement in score. Not only that, but I had the fun of reaching as high as fourth place, rather like the runner who sprints towards the front of the marathon field in the first mile, however briefly.</p>\n<p>In fact, I settled on my final floor model as early as February 17th, and subsequent experience suggests that it was at least largely correct. In the game of staying ahead of the best public submission, the next trick was to notice an overall bias in the existing submissions, and for some weeks moving the xy-coordinates of just about any public prediction by about (+0.10, -0.50) would improve its score.</p>\n<p>Two notebooks published by <a href=\"https://www.kaggle.com/wineplanetary\" target=\"_blank\">@wineplanetary</a> and by <a href=\"https://www.kaggle.com/yamsam\" target=\"_blank\">@yamsam</a> were particularly helpful in pointing out both that predictions should by located in the hallway or corridor areas of the malls, not in the shops nor in the car park outside, and that this could be visualised using the maps. Actually doing this would have been very demanding, were it not for the wonderful snap-to-grid notebooks provided by <a href=\"https://www.kaggle.com/robikscube\" target=\"_blank\">@robikscube</a>, <a href=\"https://www.kaggle.com/mehrankazeminia\" target=\"_blank\">@mehrankazeminia</a>, <a href=\"https://www.kaggle.com/somayyehgholami\" target=\"_blank\">@somayyehgholami</a> &amp; <a href=\"https://www.kaggle.com/dragonzhang\" target=\"_blank\">@dragonzhang</a>. These were forked with gratitude. As <a href=\"https://www.kaggle.com/robikscube\" target=\"_blank\">@robikscube</a> said elsewhere in the forum “<em>This competition is not about predicting exact x,y coordinates- it is about predicting which pre-defined location was traveled to. As already mentioned, in 80%-90% of the test set we already know these pre-defined locations.</em>”</p>\n<p>The snap-to-grid notebooks were complemented by other public postprocessing codes, including cost minimisation and so-called “<em>leakage</em>”. Regarding the latter, the extent to which the Arrow of Time should be respected in predictions is a matter of lively debate. My view is that if “<em>where was the phone two minutes ago</em>” is still a relevant question, then I’m not so fussed about using the future to inform our understanding of the past. So thanks also to <a href=\"https://www.kaggle.com/aristotelisch\" target=\"_blank\">@aristotelisch</a>, <a href=\"https://www.kaggle.com/iwatatakuya\" target=\"_blank\">@iwatatakuya</a>, <a href=\"https://www.kaggle.com/tomooinubushi\" target=\"_blank\">@tomooinubushi</a> &amp; <a href=\"https://www.kaggle.com/saitodevel01\" target=\"_blank\">@saitodevel01</a> for the postprocessing notebooks, which were essential for me to get down from ~6 to ~4 metres in accuracy.</p>\n<p>The snap-to-grid notebook was designed to snap a blend of multiple submissions. While it would have been trivial to change that, in fact I found it helpful to blend in what I think of as genetic diversity, mixing together models from different origins. While the robustness of ensembles remains a subject for debate, I found that incorporating this diversity generally improved my score, and multiple rounds of iterative postprocessing kept me about 0.4 metres ahead of the best public kernel – even though there were weeks when I would seem to get completely stuck and unable to make more progress. The final improvement came in the very last couple of hours, by doing postprocessing in a different order.</p>\n<p>Given how much discussion there was about shakeups or shakedowns, the choice of final submissions was going to be significant. I did what I think was the obvious thing, by hedging the two entries between my floor model and other most popular one .I expected to gain an edge of around 0.35 over anyone who went for the other model on both submissions. Ultimately, rising by 27 places on shakeup was beyond my expectations, though I wasn’t that surprised to sneak back up to silver and would have been seriously disappointed to fall outside the medals having spent, I think, the whole competition in the top 100. In fact, my better chosen submission turned out to be only my second best private score, but this cost me just one place.</p>\n<p>I also want to thank those of you who have engaged in some fascinating discussions on the forum: <a href=\"https://www.kaggle.com/chris62\" target=\"_blank\">@chris62</a>, <a href=\"https://www.kaggle.com/ht5brer\" target=\"_blank\">@ht5brer</a>, <a href=\"https://www.kaggle.com/kmldas\" target=\"_blank\">@kmldas</a>, <a href=\"https://www.kaggle.com/lazaro97\" target=\"_blank\">@lazaro97</a>, <a href=\"https://www.kaggle.com/mamasinkgs\" target=\"_blank\">@mamasinkgs</a>, <a href=\"https://www.kaggle.com/nigelhenry\" target=\"_blank\">@nigelhenry</a>, <a href=\"https://www.kaggle.com/olaf2000\" target=\"_blank\">@olaf2000</a>, <a href=\"https://www.kaggle.com/ravishah1\" target=\"_blank\">@ravishah1</a>, <a href=\"https://www.kaggle.com/serigne\" target=\"_blank\">@serigne</a>, <a href=\"https://www.kaggle.com/suryajrrafi\" target=\"_blank\">@suryajrrafi</a>, <a href=\"https://www.kaggle.com/tvdwiele\" target=\"_blank\">@tvdwiele</a>, <a href=\"https://www.kaggle.com/zeemeen\" target=\"_blank\">@zeemeen</a> &amp; <a href=\"https://www.kaggle.com/zidmie\" target=\"_blank\">@zidmie</a> and I apologise to those whom I missed out. I also enjoyed reading the excellent notebooks from <a href=\"https://www.kaggle.com/chandrylpaternetony\" target=\"_blank\">@chandrylpaternetony</a>, <a href=\"https://www.kaggle.com/dailysergey\" target=\"_blank\">@dailysergey</a>, <a href=\"https://www.kaggle.com/deepijongwonkim\" target=\"_blank\">@deepijongwonkim</a>, <a href=\"https://www.kaggle.com/ghaiyur\" target=\"_blank\">@ghaiyur</a>, <a href=\"https://www.kaggle.com/hrshtt\" target=\"_blank\">@hrshtt</a>, <a href=\"https://www.kaggle.com/iamleonie\" target=\"_blank\">@iamleonie</a>, <a href=\"https://www.kaggle.com/jwilliamhughdore\" target=\"_blank\">@jwilliamhughdore</a>, <a href=\"https://www.kaggle.com/kokitanisaka\" target=\"_blank\">@kokitanisaka</a>, <a href=\"https://www.kaggle.com/mehrankazeminia\" target=\"_blank\">@mehrankazeminia</a>, <a href=\"https://www.kaggle.com/muhammadzubairkhan92\" target=\"_blank\">@muhammadzubairkhan92</a>; <a href=\"https://www.kaggle.com/museas\" target=\"_blank\">@museas</a>, <a href=\"https://www.kaggle.com/oxzplvifi\" target=\"_blank\">@oxzplvifi</a>, <a href=\"https://www.kaggle.com/rafaelcartenet\" target=\"_blank\">@rafaelcartenet</a>, <a href=\"https://www.kaggle.com/rdboyes\" target=\"_blank\">@rdboyes</a>, <a href=\"https://www.kaggle.com/satokiogiso\" target=\"_blank\">@satokiogiso</a>, <a href=\"https://www.kaggle.com/saurabhbagchi\" target=\"_blank\">@saurabhbagchi</a>, <a href=\"https://www.kaggle.com/somayyehgholami\" target=\"_blank\">@somayyehgholami</a>, <a href=\"https://www.kaggle.com/therocket290\" target=\"_blank\">@therocket290</a>, <a href=\"https://www.kaggle.com/tomwarrens\" target=\"_blank\">@tomwarrens</a> &amp; <a href=\"https://www.kaggle.com/tosinabase\" target=\"_blank\">@tosinabase</a>. I especially thank those of you who made great contributions to the notebooks or discussions, without the reward of a high final ranking on the leaderboard. Thanks also to <a href=\"https://www.kaggle.com/yuanchaoshu\" target=\"_blank\">@yuanchaoshu</a>, <a href=\"https://www.kaggle.com/juliaelliott\" target=\"_blank\">@juliaelliott</a> &amp; the Kaggle team for a great competition.</p>",
  "messages": [
    {
      "id": "1313843",
      "postDate": "05/18/2021 18:36:26",
      "content": "<p>I wrote some weeks ago: “<em>What strikes me is the extent to which the Kaggle community has effectively solved this problem - we are now down to locating a phone in a multi-storey building to within an accuracy of about 3.65 metres. Well done to all of you folk who've contributed to this!</em>” Well, that would now be 1.5 metres, and I am even more impressed now than I was then with your collective ingenuity.</p>\n<p>I’ve been involved in this competition from very early on, so long ago that my first submission scored 14.845. Every journey needs to start somewhere, so huge thanks to those who provided the early public models, especially <a href=\"https://www.kaggle.com/ammarali32\" target=\"_blank\">@ammarali32</a>, <a href=\"https://www.kaggle.com/devinanzelmo\" target=\"_blank\">@devinanzelmo</a>, <a href=\"https://www.kaggle.com/hiro5299834\" target=\"_blank\">@hiro5299834</a> &amp; <a href=\"https://www.kaggle.com/jiweiliu\" target=\"_blank\">@jiweiliu</a>. </p>\n<p>I began my journey by concentrating on predicting the floors, which I saw as the easiest aspect to make progress on. Early models often predicted different floors for waypoints in the same path, perhaps a useful indicator of uncertainty. In the early days, inserting my best guess at the floor prediction into any of the then-public models would yield a significant improvement in score. Not only that, but I had the fun of reaching as high as fourth place, rather like the runner who sprints towards the front of the marathon field in the first mile, however briefly.</p>\n<p>In fact, I settled on my final floor model as early as February 17th, and subsequent experience suggests that it was at least largely correct. In the game of staying ahead of the best public submission, the next trick was to notice an overall bias in the existing submissions, and for some weeks moving the xy-coordinates of just about any public prediction by about (+0.10, -0.50) would improve its score.</p>\n<p>Two notebooks published by <a href=\"https://www.kaggle.com/wineplanetary\" target=\"_blank\">@wineplanetary</a> and by <a href=\"https://www.kaggle.com/yamsam\" target=\"_blank\">@yamsam</a> were particularly helpful in pointing out both that predictions should by located in the hallway or corridor areas of the malls, not in the shops nor in the car park outside, and that this could be visualised using the maps. Actually doing this would have been very demanding, were it not for the wonderful snap-to-grid notebooks provided by <a href=\"https://www.kaggle.com/robikscube\" target=\"_blank\">@robikscube</a>, <a href=\"https://www.kaggle.com/mehrankazeminia\" target=\"_blank\">@mehrankazeminia</a>, <a href=\"https://www.kaggle.com/somayyehgholami\" target=\"_blank\">@somayyehgholami</a> &amp; <a href=\"https://www.kaggle.com/dragonzhang\" target=\"_blank\">@dragonzhang</a>. These were forked with gratitude. As <a href=\"https://www.kaggle.com/robikscube\" target=\"_blank\">@robikscube</a> said elsewhere in the forum “<em>This competition is not about predicting exact x,y coordinates- it is about predicting which pre-defined location was traveled to. As already mentioned, in 80%-90% of the test set we already know these pre-defined locations.</em>”</p>\n<p>The snap-to-grid notebooks were complemented by other public postprocessing codes, including cost minimisation and so-called “<em>leakage</em>”. Regarding the latter, the extent to which the Arrow of Time should be respected in predictions is a matter of lively debate. My view is that if “<em>where was the phone two minutes ago</em>” is still a relevant question, then I’m not so fussed about using the future to inform our understanding of the past. So thanks also to <a href=\"https://www.kaggle.com/aristotelisch\" target=\"_blank\">@aristotelisch</a>, <a href=\"https://www.kaggle.com/iwatatakuya\" target=\"_blank\">@iwatatakuya</a>, <a href=\"https://www.kaggle.com/tomooinubushi\" target=\"_blank\">@tomooinubushi</a> &amp; <a href=\"https://www.kaggle.com/saitodevel01\" target=\"_blank\">@saitodevel01</a> for the postprocessing notebooks, which were essential for me to get down from ~6 to ~4 metres in accuracy.</p>\n<p>The snap-to-grid notebook was designed to snap a blend of multiple submissions. While it would have been trivial to change that, in fact I found it helpful to blend in what I think of as genetic diversity, mixing together models from different origins. While the robustness of ensembles remains a subject for debate, I found that incorporating this diversity generally improved my score, and multiple rounds of iterative postprocessing kept me about 0.4 metres ahead of the best public kernel – even though there were weeks when I would seem to get completely stuck and unable to make more progress. The final improvement came in the very last couple of hours, by doing postprocessing in a different order.</p>\n<p>Given how much discussion there was about shakeups or shakedowns, the choice of final submissions was going to be significant. I did what I think was the obvious thing, by hedging the two entries between my floor model and other most popular one .I expected to gain an edge of around 0.35 over anyone who went for the other model on both submissions. Ultimately, rising by 27 places on shakeup was beyond my expectations, though I wasn’t that surprised to sneak back up to silver and would have been seriously disappointed to fall outside the medals having spent, I think, the whole competition in the top 100. In fact, my better chosen submission turned out to be only my second best private score, but this cost me just one place.</p>\n<p>I also want to thank those of you who have engaged in some fascinating discussions on the forum: <a href=\"https://www.kaggle.com/chris62\" target=\"_blank\">@chris62</a>, <a href=\"https://www.kaggle.com/ht5brer\" target=\"_blank\">@ht5brer</a>, <a href=\"https://www.kaggle.com/kmldas\" target=\"_blank\">@kmldas</a>, <a href=\"https://www.kaggle.com/lazaro97\" target=\"_blank\">@lazaro97</a>, <a href=\"https://www.kaggle.com/mamasinkgs\" target=\"_blank\">@mamasinkgs</a>, <a href=\"https://www.kaggle.com/nigelhenry\" target=\"_blank\">@nigelhenry</a>, <a href=\"https://www.kaggle.com/olaf2000\" target=\"_blank\">@olaf2000</a>, <a href=\"https://www.kaggle.com/ravishah1\" target=\"_blank\">@ravishah1</a>, <a href=\"https://www.kaggle.com/serigne\" target=\"_blank\">@serigne</a>, <a href=\"https://www.kaggle.com/suryajrrafi\" target=\"_blank\">@suryajrrafi</a>, <a href=\"https://www.kaggle.com/tvdwiele\" target=\"_blank\">@tvdwiele</a>, <a href=\"https://www.kaggle.com/zeemeen\" target=\"_blank\">@zeemeen</a> &amp; <a href=\"https://www.kaggle.com/zidmie\" target=\"_blank\">@zidmie</a> and I apologise to those whom I missed out. I also enjoyed reading the excellent notebooks from <a href=\"https://www.kaggle.com/chandrylpaternetony\" target=\"_blank\">@chandrylpaternetony</a>, <a href=\"https://www.kaggle.com/dailysergey\" target=\"_blank\">@dailysergey</a>, <a href=\"https://www.kaggle.com/deepijongwonkim\" target=\"_blank\">@deepijongwonkim</a>, <a href=\"https://www.kaggle.com/ghaiyur\" target=\"_blank\">@ghaiyur</a>, <a href=\"https://www.kaggle.com/hrshtt\" target=\"_blank\">@hrshtt</a>, <a href=\"https://www.kaggle.com/iamleonie\" target=\"_blank\">@iamleonie</a>, <a href=\"https://www.kaggle.com/jwilliamhughdore\" target=\"_blank\">@jwilliamhughdore</a>, <a href=\"https://www.kaggle.com/kokitanisaka\" target=\"_blank\">@kokitanisaka</a>, <a href=\"https://www.kaggle.com/mehrankazeminia\" target=\"_blank\">@mehrankazeminia</a>, <a href=\"https://www.kaggle.com/muhammadzubairkhan92\" target=\"_blank\">@muhammadzubairkhan92</a>; <a href=\"https://www.kaggle.com/museas\" target=\"_blank\">@museas</a>, <a href=\"https://www.kaggle.com/oxzplvifi\" target=\"_blank\">@oxzplvifi</a>, <a href=\"https://www.kaggle.com/rafaelcartenet\" target=\"_blank\">@rafaelcartenet</a>, <a href=\"https://www.kaggle.com/rdboyes\" target=\"_blank\">@rdboyes</a>, <a href=\"https://www.kaggle.com/satokiogiso\" target=\"_blank\">@satokiogiso</a>, <a href=\"https://www.kaggle.com/saurabhbagchi\" target=\"_blank\">@saurabhbagchi</a>, <a href=\"https://www.kaggle.com/somayyehgholami\" target=\"_blank\">@somayyehgholami</a>, <a href=\"https://www.kaggle.com/therocket290\" target=\"_blank\">@therocket290</a>, <a href=\"https://www.kaggle.com/tomwarrens\" target=\"_blank\">@tomwarrens</a> &amp; <a href=\"https://www.kaggle.com/tosinabase\" target=\"_blank\">@tosinabase</a>. I especially thank those of you who made great contributions to the notebooks or discussions, without the reward of a high final ranking on the leaderboard. Thanks also to <a href=\"https://www.kaggle.com/yuanchaoshu\" target=\"_blank\">@yuanchaoshu</a>, <a href=\"https://www.kaggle.com/juliaelliott\" target=\"_blank\">@juliaelliott</a> &amp; the Kaggle team for a great competition.</p>",
      "rawMarkdown": "I wrote some weeks ago: “*What strikes me is the extent to which the Kaggle community has effectively solved this problem - we are now down to locating a phone in a multi-storey building to within an accuracy of about 3.65 metres. Well done to all of you folk who've contributed to this!*” Well, that would now be 1.5 metres, and I am even more impressed now than I was then with your collective ingenuity.\n\nI’ve been involved in this competition from very early on, so long ago that my first submission scored 14.845. Every journey needs to start somewhere, so huge thanks to those who provided the early public models, especially @ammarali32, @devinanzelmo, @hiro5299834 & @jiweiliu. \n\nI began my journey by concentrating on predicting the floors, which I saw as the easiest aspect to make progress on. Early models often predicted different floors for waypoints in the same path, perhaps a useful indicator of uncertainty. In the early days, inserting my best guess at the floor prediction into any of the then-public models would yield a significant improvement in score. Not only that, but I had the fun of reaching as high as fourth place, rather like the runner who sprints towards the front of the marathon field in the first mile, however briefly.\n\nIn fact, I settled on my final floor model as early as February 17th, and subsequent experience suggests that it was at least largely correct. In the game of staying ahead of the best public submission, the next trick was to notice an overall bias in the existing submissions, and for some weeks moving the xy-coordinates of just about any public prediction by about (+0.10, -0.50) would improve its score.\n\nTwo notebooks published by @wineplanetary and by @yamsam were particularly helpful in pointing out both that predictions should by located in the hallway or corridor areas of the malls, not in the shops nor in the car park outside, and that this could be visualised using the maps. Actually doing this would have been very demanding, were it not for the wonderful snap-to-grid notebooks provided by @robikscube, @mehrankazeminia, @somayyehgholami & @dragonzhang. These were forked with gratitude. As @robikscube said elsewhere in the forum “*This competition is not about predicting exact x,y coordinates- it is about predicting which pre-defined location was traveled to. As already mentioned, in 80%-90% of the test set we already know these pre-defined locations.*”\n\nThe snap-to-grid notebooks were complemented by other public postprocessing codes, including cost minimisation and so-called “*leakage*”. Regarding the latter, the extent to which the Arrow of Time should be respected in predictions is a matter of lively debate. My view is that if “*where was the phone two minutes ago*” is still a relevant question, then I’m not so fussed about using the future to inform our understanding of the past. So thanks also to @aristotelisch, @iwatatakuya, @tomooinubushi & @saitodevel01 for the postprocessing notebooks, which were essential for me to get down from ~6 to ~4 metres in accuracy.\n\nThe snap-to-grid notebook was designed to snap a blend of multiple submissions. While it would have been trivial to change that, in fact I found it helpful to blend in what I think of as genetic diversity, mixing together models from different origins. While the robustness of ensembles remains a subject for debate, I found that incorporating this diversity generally improved my score, and multiple rounds of iterative postprocessing kept me about 0.4 metres ahead of the best public kernel – even though there were weeks when I would seem to get completely stuck and unable to make more progress. The final improvement came in the very last couple of hours, by doing postprocessing in a different order.\n\nGiven how much discussion there was about shakeups or shakedowns, the choice of final submissions was going to be significant. I did what I think was the obvious thing, by hedging the two entries between my floor model and other most popular one .I expected to gain an edge of around 0.35 over anyone who went for the other model on both submissions. Ultimately, rising by 27 places on shakeup was beyond my expectations, though I wasn’t that surprised to sneak back up to silver and would have been seriously disappointed to fall outside the medals having spent, I think, the whole competition in the top 100. In fact, my better chosen submission turned out to be only my second best private score, but this cost me just one place.\n\nI also want to thank those of you who have engaged in some fascinating discussions on the forum: @chris62, @ht5brer, @kmldas, @lazaro97, @mamasinkgs, @nigelhenry, @olaf2000, @ravishah1, @serigne, @suryajrrafi, @tvdwiele, @zeemeen & @zidmie and I apologise to those whom I missed out. I also enjoyed reading the excellent notebooks from @chandrylpaternetony, @dailysergey, @deepijongwonkim, @ghaiyur, @hrshtt, @iamleonie, @jwilliamhughdore, @kokitanisaka, @mehrankazeminia, @muhammadzubairkhan92; @museas, @oxzplvifi, @rafaelcartenet, @rdboyes, @satokiogiso, @saurabhbagchi, @somayyehgholami, @therocket290, @tomwarrens & @tosinabase. I especially thank those of you who made great contributions to the notebooks or discussions, without the reward of a high final ranking on the leaderboard. Thanks also to @yuanchaoshu, @juliaelliott & the Kaggle team for a great competition.",
      "votes": null
    },
    {
      "id": "1314133",
      "postDate": "05/19/2021 01:11:09",
      "content": "<p>Great write up.</p>\n<blockquote>\n  <p>I began my journey….</p>\n</blockquote>\n<p>It's awesome to think of challenges like this as a journey. On to the next one!</p>",
      "rawMarkdown": "Great write up.\n> I began my journey....\n\nIt's awesome to think of challenges like this as a journey. On to the next one!",
      "votes": null
    },
    {
      "id": "1314155",
      "postDate": "05/19/2021 01:59:10",
      "content": "<p>Congratulations <a href=\"https://www.kaggle.com/jbomitchell\" target=\"_blank\">@jbomitchell</a> !! Looking forward to see you get gold in the next one!!</p>",
      "rawMarkdown": "Congratulations @jbomitchell !! Looking forward to see you get gold in the next one!!",
      "votes": null
    },
    {
      "id": "1314705",
      "postDate": "05/19/2021 10:26:55",
      "content": "<p>Thanks to you too sir,</p>",
      "rawMarkdown": "Thanks to you too sir,",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 1314133,
      "author_name": "robikscube",
      "author_url": "",
      "post_date": "05/19/2021 01:11:09",
      "content": "<p>Great write up.</p>\n<blockquote>\n  <p>I began my journey….</p>\n</blockquote>\n<p>It's awesome to think of challenges like this as a journey. On to the next one!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1314155,
      "author_name": "kmldas",
      "author_url": "",
      "post_date": "05/19/2021 01:59:10",
      "content": "<p>Congratulations <a href=\"https://www.kaggle.com/jbomitchell\" target=\"_blank\">@jbomitchell</a> !! Looking forward to see you get gold in the next one!!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1314705,
      "author_name": "muhammadzubairkhan92",
      "author_url": "",
      "post_date": "05/19/2021 10:26:55",
      "content": "<p>Thanks to you too sir,</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "1313843": "I wrote some weeks ago: “*What strikes me is the extent to which the Kaggle community has effectively solved this problem - we are now down to locating a phone in a multi-storey building to within an accuracy of about 3.65 metres. Well done to all of you folk who've contributed to this!*” Well, that would now be 1.5 metres, and I am even more impressed now than I was then with your collective ingenuity.\n\nI’ve been involved in this competition from very early on, so long ago that my first submission scored 14.845. Every journey needs to start somewhere, so huge thanks to those who provided the early public models, especially @ammarali32, @devinanzelmo, @hiro5299834 & @jiweiliu. \n\nI began my journey by concentrating on predicting the floors, which I saw as the easiest aspect to make progress on. Early models often predicted different floors for waypoints in the same path, perhaps a useful indicator of uncertainty. In the early days, inserting my best guess at the floor prediction into any of the then-public models would yield a significant improvement in score. Not only that, but I had the fun of reaching as high as fourth place, rather like the runner who sprints towards the front of the marathon field in the first mile, however briefly.\n\nIn fact, I settled on my final floor model as early as February 17th, and subsequent experience suggests that it was at least largely correct. In the game of staying ahead of the best public submission, the next trick was to notice an overall bias in the existing submissions, and for some weeks moving the xy-coordinates of just about any public prediction by about (+0.10, -0.50) would improve its score.\n\nTwo notebooks published by @wineplanetary and by @yamsam were particularly helpful in pointing out both that predictions should by located in the hallway or corridor areas of the malls, not in the shops nor in the car park outside, and that this could be visualised using the maps. Actually doing this would have been very demanding, were it not for the wonderful snap-to-grid notebooks provided by @robikscube, @mehrankazeminia, @somayyehgholami & @dragonzhang. These were forked with gratitude. As @robikscube said elsewhere in the forum “*This competition is not about predicting exact x,y coordinates- it is about predicting which pre-defined location was traveled to. As already mentioned, in 80%-90% of the test set we already know these pre-defined locations.*”\n\nThe snap-to-grid notebooks were complemented by other public postprocessing codes, including cost minimisation and so-called “*leakage*”. Regarding the latter, the extent to which the Arrow of Time should be respected in predictions is a matter of lively debate. My view is that if “*where was the phone two minutes ago*” is still a relevant question, then I’m not so fussed about using the future to inform our understanding of the past. So thanks also to @aristotelisch, @iwatatakuya, @tomooinubushi & @saitodevel01 for the postprocessing notebooks, which were essential for me to get down from ~6 to ~4 metres in accuracy.\n\nThe snap-to-grid notebook was designed to snap a blend of multiple submissions. While it would have been trivial to change that, in fact I found it helpful to blend in what I think of as genetic diversity, mixing together models from different origins. While the robustness of ensembles remains a subject for debate, I found that incorporating this diversity generally improved my score, and multiple rounds of iterative postprocessing kept me about 0.4 metres ahead of the best public kernel – even though there were weeks when I would seem to get completely stuck and unable to make more progress. The final improvement came in the very last couple of hours, by doing postprocessing in a different order.\n\nGiven how much discussion there was about shakeups or shakedowns, the choice of final submissions was going to be significant. I did what I think was the obvious thing, by hedging the two entries between my floor model and other most popular one .I expected to gain an edge of around 0.35 over anyone who went for the other model on both submissions. Ultimately, rising by 27 places on shakeup was beyond my expectations, though I wasn’t that surprised to sneak back up to silver and would have been seriously disappointed to fall outside the medals having spent, I think, the whole competition in the top 100. In fact, my better chosen submission turned out to be only my second best private score, but this cost me just one place.\n\nI also want to thank those of you who have engaged in some fascinating discussions on the forum: @chris62, @ht5brer, @kmldas, @lazaro97, @mamasinkgs, @nigelhenry, @olaf2000, @ravishah1, @serigne, @suryajrrafi, @tvdwiele, @zeemeen & @zidmie and I apologise to those whom I missed out. I also enjoyed reading the excellent notebooks from @chandrylpaternetony, @dailysergey, @deepijongwonkim, @ghaiyur, @hrshtt, @iamleonie, @jwilliamhughdore, @kokitanisaka, @mehrankazeminia, @muhammadzubairkhan92; @museas, @oxzplvifi, @rafaelcartenet, @rdboyes, @satokiogiso, @saurabhbagchi, @somayyehgholami, @therocket290, @tomwarrens & @tosinabase. I especially thank those of you who made great contributions to the notebooks or discussions, without the reward of a high final ranking on the leaderboard. Thanks also to @yuanchaoshu, @juliaelliott & the Kaggle team for a great competition.",
    "1314133": "Great write up.\n> I began my journey....\n\nIt's awesome to think of challenges like this as a journey. On to the next one!",
    "1314155": "Congratulations @jbomitchell !! Looking forward to see you get gold in the next one!!",
    "1314705": "Thanks to you too sir,"
  },
  "source": "meta"
}