{
  "id": 239919,
  "title": "9th place solution higepon",
  "url": "/competitions/indoor-location-navigation/writeups/higepon-saito-9th-place-solution-higepon",
  "author_name": "",
  "post_date": "2021-05-18T23:20:13.423Z",
  "votes": 30,
  "comment_count": 12,
  "views": 0,
  "content": "<p>Congrats to all the winners!<br>\nIt has been very challenging competition and I learned a lot from my teammate <a href=\"https://www.kaggle.com/saitodevel01\" target=\"_blank\">@saitodevel01</a> and Kaggle community. Much appreicated.</p>\n<p>Please see my teammate <a href=\"https://www.kaggle.com/saitodevel01\" target=\"_blank\">@saitodevel01</a>'s solution <a href=\"https://www.kaggle.com/c/indoor-location-navigation/discussion/20087\" target=\"_blank\">here</a>.</p>\n<h2>Solution</h2>\n<p>My model was stacking of GRU and LSTM with the following data.<br>\n<img alt=\"スクリーンショット 2021-05-18 12 52 34\" src=\"https://user-images.githubusercontent.com/54491/118587697-0636b680-b7d8-11eb-8734-98aedd52f743.png\"><br>\n<img alt=\"スクリーンショット 2021-05-18 12 52 42\" src=\"https://user-images.githubusercontent.com/54491/118587716-0b940100-b7d8-11eb-9d6b-470af3d20d9c.png\"></p>\n<h2>Key differentiators</h2>\n<ul>\n<li>We were able create more training data using <code>compute_step_postion</code> fuction provided by the host.</li>\n<li>We created train data based on waypoints instead of wifi group.<ul>\n<li>While the popular united Wifi solution was creating training set as<ol>\n<li>Pick wifi group withing the same timestmap.</li>\n<li>Find a timestamp with the closest timestamp.</li></ol></li>\n<li>We did something different<ol>\n<li>Pick waypoint.</li>\n<li>Find top 200 closest wifi bssids with some meta data.</li>\n<li>This only works well with more waypoints coming from <code>compute_step_postion</code> .</li></ol></li></ul></li>\n<li><a href=\"https://www.kaggle.com/saitodevel01/background-ideas-of-cost-minimization-notebook\" target=\"_blank\">The magical post processing</a> by <a href=\"https://www.kaggle.com/saitodevel01\" target=\"_blank\">@saitodevel01</a>.</li>\n<li>Finally Pseudo Labeling worked really well for us in this competition.</li>\n</ul>\n<h2>Pointers to my teammate's solution</h2>\n<ul>\n<li><a href=\"https://www.kaggle.com/saitodevel01/background-ideas-of-cost-minimization-notebook\" target=\"_blank\">Background Ideas of \"Cost Minimization\" Notebook | Kaggle</a></li>\n<li><a href=\"https://www.kaggle.com/saitodevel01/11-pseudo-labeling-from-lb-2-586-with-retry\" target=\"_blank\">11.Pseudo Labeling from LB:2.586 with Retry | Kaggle</a></li>\n</ul>\n<p>Please let us know if you have any questions!</p>",
  "messages": [
    {
      "id": "1312435",
      "postDate": "05/18/2021 03:58:14",
      "content": "<p>Congrats to all the winners!<br>\nIt has been very challenging competition and I learned a lot from my teammate <a href=\"https://www.kaggle.com/saitodevel01\" target=\"_blank\">@saitodevel01</a> and Kaggle community. Much appreicated.</p>\n<p>Please see my teammate <a href=\"https://www.kaggle.com/saitodevel01\" target=\"_blank\">@saitodevel01</a>'s solution <a href=\"https://www.kaggle.com/c/indoor-location-navigation/discussion/20087\" target=\"_blank\">here</a>.</p>\n<h2>Solution</h2>\n<p>My model was stacking of GRU and LSTM with the following data.<br>\n<img alt=\"スクリーンショット 2021-05-18 12 52 34\" src=\"https://user-images.githubusercontent.com/54491/118587697-0636b680-b7d8-11eb-8734-98aedd52f743.png\"><br>\n<img alt=\"スクリーンショット 2021-05-18 12 52 42\" src=\"https://user-images.githubusercontent.com/54491/118587716-0b940100-b7d8-11eb-9d6b-470af3d20d9c.png\"></p>\n<h2>Key differentiators</h2>\n<ul>\n<li>We were able create more training data using <code>compute_step_postion</code> fuction provided by the host.</li>\n<li>We created train data based on waypoints instead of wifi group.<ul>\n<li>While the popular united Wifi solution was creating training set as<ol>\n<li>Pick wifi group withing the same timestmap.</li>\n<li>Find a timestamp with the closest timestamp.</li></ol></li>\n<li>We did something different<ol>\n<li>Pick waypoint.</li>\n<li>Find top 200 closest wifi bssids with some meta data.</li>\n<li>This only works well with more waypoints coming from <code>compute_step_postion</code> .</li></ol></li></ul></li>\n<li><a href=\"https://www.kaggle.com/saitodevel01/background-ideas-of-cost-minimization-notebook\" target=\"_blank\">The magical post processing</a> by <a href=\"https://www.kaggle.com/saitodevel01\" target=\"_blank\">@saitodevel01</a>.</li>\n<li>Finally Pseudo Labeling worked really well for us in this competition.</li>\n</ul>\n<h2>Pointers to my teammate's solution</h2>\n<ul>\n<li><a href=\"https://www.kaggle.com/saitodevel01/background-ideas-of-cost-minimization-notebook\" target=\"_blank\">Background Ideas of \"Cost Minimization\" Notebook | Kaggle</a></li>\n<li><a href=\"https://www.kaggle.com/saitodevel01/11-pseudo-labeling-from-lb-2-586-with-retry\" target=\"_blank\">11.Pseudo Labeling from LB:2.586 with Retry | Kaggle</a></li>\n</ul>\n<p>Please let us know if you have any questions!</p>",
      "rawMarkdown": "Congrats to all the winners!\nIt has been very challenging competition and I learned a lot from my teammate @saitodevel01 and Kaggle community. Much appreicated.\n\nPlease see my teammate @saitodevel01's solution [here](https://www.kaggle.com/c/indoor-location-navigation/discussion/20087).\n## Solution\nMy model was stacking of GRU and LSTM with the following data.\n<img width=\"625\" alt=\"スクリーンショット 2021-05-18 12 52 34\" src=\"https://user-images.githubusercontent.com/54491/118587697-0636b680-b7d8-11eb-8734-98aedd52f743.png\">\n<img width=\"1056\" alt=\"スクリーンショット 2021-05-18 12 52 42\" src=\"https://user-images.githubusercontent.com/54491/118587716-0b940100-b7d8-11eb-9d6b-470af3d20d9c.png\">\n\n\n## Key differentiators\n- We were able create more training data using ```compute_step_postion``` fuction provided by the host.\n- We created train data based on waypoints instead of wifi group.\n   - While the popular united Wifi solution was creating training set as\n       1. Pick wifi group withing the same timestmap.\n       2. Find a timestamp with the closest timestamp.\n   - We did something different\n       1. Pick waypoint.\n       2. Find top 200 closest wifi bssids with some meta data.\n       3. This only works well with more waypoints coming from ```compute_step_postion``` .\n- [The magical post processing](https://www.kaggle.com/saitodevel01/background-ideas-of-cost-minimization-notebook) by @saitodevel01.\n- Finally Pseudo Labeling worked really well for us in this competition.\n\n## Pointers to my teammate's solution\n- [Background Ideas of \"Cost Minimization\" Notebook \\| Kaggle](https://www.kaggle.com/saitodevel01/background-ideas-of-cost-minimization-notebook)\n- [11.Pseudo Labeling from LB:2.586 with Retry \\| Kaggle](https://www.kaggle.com/saitodevel01/11-pseudo-labeling-from-lb-2-586-with-retry)\n\n\nPlease let us know if you have any questions!",
      "votes": null
    },
    {
      "id": "1312494",
      "postDate": "05/18/2021 04:58:22",
      "content": "<p>Congrats on 9th place and becoming master <a href=\"https://www.kaggle.com/higepon\" target=\"_blank\">@higepon</a>. Thanks for sharing solution!</p>",
      "rawMarkdown": "Congrats on 9th place and becoming master @higepon. Thanks for sharing solution!",
      "votes": null
    },
    {
      "id": "1312896",
      "postDate": "05/18/2021 09:59:34",
      "content": "<p>Great solution, well deserved. Congratulations on gold finish and becoming competitions master. </p>",
      "rawMarkdown": "Great solution, well deserved. Congratulations on gold finish and becoming competitions master.",
      "votes": null
    },
    {
      "id": "1313235",
      "postDate": "05/18/2021 13:10:27",
      "content": "<p><a href=\"https://www.kaggle.com/higepon\" target=\"_blank\">@higepon</a> Thanks for sharing your great solution! We applied pseudo labeling (for test data), and our CV improved 0.2 but LB improve just 0.02. How improve your LB score by pseudo labeling? </p>",
      "rawMarkdown": "higepon Thanks for sharing your great solution! We applied pseudo labeling (for test data), and our CV improved 0.2 but LB improve just 0.02. How improve your LB score by pseudo labeling?",
      "votes": null
    },
    {
      "id": "1313487",
      "postDate": "05/18/2021 15:25:33",
      "content": "<p>Thank you for sharing the solution and Congrats  on gold and becoming Kaggle Competitions Master!<br>\nI have one question about train data.</p>\n<blockquote>\n  <p>We did something different</p>\n  <ul>\n  <li>Pick waypoint.</li>\n  <li>Find top 200 closest wifi bssids with some meta data.</li>\n  <li>This only works well with more waypoints coming from compute_step_postion.</li>\n  </ul>\n</blockquote>\n<p>How could you do this for test data, when we have no waypoints to pick up? </p>",
      "rawMarkdown": "Thank you for sharing the solution and Congrats  on gold and becoming Kaggle Competitions Master!\nI have one question about train data.\n\n> We did something different\n> - Pick waypoint.\n> - Find top 200 closest wifi bssids with some meta data.\n> - This only works well with more waypoints coming from compute_step_postion.\n\nHow could you do this for test data, when we have no waypoints to pick up?",
      "votes": null
    },
    {
      "id": "1314362",
      "postDate": "05/19/2021 06:11:11",
      "content": "<p>Great question. For example our first Pseudo Labeling improved score from 3.11233 -&gt; 2.89747 in public LB.</p>",
      "rawMarkdown": "Great question. For example our first Pseudo Labeling improved score from 3.11233 -> 2.89747 in public LB.",
      "votes": null
    },
    {
      "id": "1314364",
      "postDate": "05/19/2021 06:11:27",
      "content": "<p>Thank you!</p>",
      "rawMarkdown": "Thank you!",
      "votes": null
    },
    {
      "id": "1314365",
      "postDate": "05/19/2021 06:11:40",
      "content": "<p>Thank you KhanhVD!</p>",
      "rawMarkdown": "Thank you KhanhVD!",
      "votes": null
    },
    {
      "id": "1314367",
      "postDate": "05/19/2021 06:12:58",
      "content": "<p>Sorry I wasn't very clear. We pick timestamp of waypoint then find top 200 closest wifi using time delta. So for the test data, we just used the timestamp we're predicting.</p>",
      "rawMarkdown": "Sorry I wasn't very clear. We pick timestamp of waypoint then find top 200 closest wifi using time delta. So for the test data, we just used the timestamp we're predicting.",
      "votes": null
    },
    {
      "id": "1314369",
      "postDate": "05/19/2021 06:14:59",
      "content": "<p>Thank you for your reply! </p>",
      "rawMarkdown": "Thank you for your reply!",
      "votes": null
    },
    {
      "id": "1314407",
      "postDate": "05/19/2021 06:38:24",
      "content": "<p>Wow, that was very effective for you!</p>\n<blockquote>\n  <p>our first Pseudo Labeling</p>\n</blockquote>\n<p>It mean you did repeatedly Pseudo Labeling several times like <a href=\"https://www.kaggle.com/c/indoor-location-navigation/discussion/240259\" target=\"_blank\">7th place solution</a>?</p>",
      "rawMarkdown": "Wow, that was very effective for you!\n\n> our first Pseudo Labeling\n\nIt mean you did repeatedly Pseudo Labeling several times like [7th place solution](https://www.kaggle.com/c/indoor-location-navigation/discussion/240259)?",
      "votes": null
    },
    {
      "id": "1314582",
      "postDate": "05/19/2021 08:49:16",
      "content": "<p>Yes we did it repeatedly. But the thing is it didn't improve much after the first pseudo labeling for no hand labeling case (The one we submitted). But it worked better for hand labeling case. We didn't investigate why :)?</p>",
      "rawMarkdown": "Yes we did it repeatedly. But the thing is it didn't improve much after the first pseudo labeling for no hand labeling case (The one we submitted). But it worked better for hand labeling case. We didn't investigate why :)?",
      "votes": null
    },
    {
      "id": "1314603",
      "postDate": "05/19/2021 09:04:36",
      "content": "<p>I got it. Thank you for sharing! It was very helpful for me.</p>",
      "rawMarkdown": "I got it. Thank you for sharing! It was very helpful for me.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 1312494,
      "author_name": "duykhanh99",
      "author_url": "",
      "post_date": "05/18/2021 04:58:22",
      "content": "<p>Congrats on 9th place and becoming master <a href=\"https://www.kaggle.com/higepon\" target=\"_blank\">@higepon</a>. Thanks for sharing solution!</p>",
      "votes": null,
      "replies": [
        {
          "id": 1314365,
          "author_name": "higepon",
          "author_url": "",
          "post_date": "05/19/2021 06:11:40",
          "content": "<p>Thank you KhanhVD!</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1312896,
      "author_name": "nischaydnk",
      "author_url": "",
      "post_date": "05/18/2021 09:59:34",
      "content": "<p>Great solution, well deserved. Congratulations on gold finish and becoming competitions master. </p>",
      "votes": null,
      "replies": [
        {
          "id": 1314364,
          "author_name": "higepon",
          "author_url": "",
          "post_date": "05/19/2021 06:11:27",
          "content": "<p>Thank you!</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1313235,
      "author_name": "kuto0633",
      "author_url": "",
      "post_date": "05/18/2021 13:10:27",
      "content": "<p><a href=\"https://www.kaggle.com/higepon\" target=\"_blank\">@higepon</a> Thanks for sharing your great solution! We applied pseudo labeling (for test data), and our CV improved 0.2 but LB improve just 0.02. How improve your LB score by pseudo labeling? </p>",
      "votes": null,
      "replies": [
        {
          "id": 1314362,
          "author_name": "higepon",
          "author_url": "",
          "post_date": "05/19/2021 06:11:11",
          "content": "<p>Great question. For example our first Pseudo Labeling improved score from 3.11233 -&gt; 2.89747 in public LB.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1314407,
          "author_name": "kuto0633",
          "author_url": "",
          "post_date": "05/19/2021 06:38:24",
          "content": "<p>Wow, that was very effective for you!</p>\n<blockquote>\n  <p>our first Pseudo Labeling</p>\n</blockquote>\n<p>It mean you did repeatedly Pseudo Labeling several times like <a href=\"https://www.kaggle.com/c/indoor-location-navigation/discussion/240259\" target=\"_blank\">7th place solution</a>?</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1314582,
          "author_name": "higepon",
          "author_url": "",
          "post_date": "05/19/2021 08:49:16",
          "content": "<p>Yes we did it repeatedly. But the thing is it didn't improve much after the first pseudo labeling for no hand labeling case (The one we submitted). But it worked better for hand labeling case. We didn't investigate why :)?</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1314603,
          "author_name": "kuto0633",
          "author_url": "",
          "post_date": "05/19/2021 09:04:36",
          "content": "<p>I got it. Thank you for sharing! It was very helpful for me.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1313487,
      "author_name": "res1235",
      "author_url": "",
      "post_date": "05/18/2021 15:25:33",
      "content": "<p>Thank you for sharing the solution and Congrats  on gold and becoming Kaggle Competitions Master!<br>\nI have one question about train data.</p>\n<blockquote>\n  <p>We did something different</p>\n  <ul>\n  <li>Pick waypoint.</li>\n  <li>Find top 200 closest wifi bssids with some meta data.</li>\n  <li>This only works well with more waypoints coming from compute_step_postion.</li>\n  </ul>\n</blockquote>\n<p>How could you do this for test data, when we have no waypoints to pick up? </p>",
      "votes": null,
      "replies": [
        {
          "id": 1314367,
          "author_name": "higepon",
          "author_url": "",
          "post_date": "05/19/2021 06:12:58",
          "content": "<p>Sorry I wasn't very clear. We pick timestamp of waypoint then find top 200 closest wifi using time delta. So for the test data, we just used the timestamp we're predicting.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1314369,
          "author_name": "res1235",
          "author_url": "",
          "post_date": "05/19/2021 06:14:59",
          "content": "<p>Thank you for your reply! </p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "1312435": "Congrats to all the winners!\nIt has been very challenging competition and I learned a lot from my teammate @saitodevel01 and Kaggle community. Much appreicated.\n\nPlease see my teammate @saitodevel01's solution [here](https://www.kaggle.com/c/indoor-location-navigation/discussion/20087).\n## Solution\nMy model was stacking of GRU and LSTM with the following data.\n<img width=\"625\" alt=\"スクリーンショット 2021-05-18 12 52 34\" src=\"https://user-images.githubusercontent.com/54491/118587697-0636b680-b7d8-11eb-8734-98aedd52f743.png\">\n<img width=\"1056\" alt=\"スクリーンショット 2021-05-18 12 52 42\" src=\"https://user-images.githubusercontent.com/54491/118587716-0b940100-b7d8-11eb-9d6b-470af3d20d9c.png\">\n\n\n## Key differentiators\n- We were able create more training data using ```compute_step_postion``` fuction provided by the host.\n- We created train data based on waypoints instead of wifi group.\n   - While the popular united Wifi solution was creating training set as\n       1. Pick wifi group withing the same timestmap.\n       2. Find a timestamp with the closest timestamp.\n   - We did something different\n       1. Pick waypoint.\n       2. Find top 200 closest wifi bssids with some meta data.\n       3. This only works well with more waypoints coming from ```compute_step_postion``` .\n- [The magical post processing](https://www.kaggle.com/saitodevel01/background-ideas-of-cost-minimization-notebook) by @saitodevel01.\n- Finally Pseudo Labeling worked really well for us in this competition.\n\n## Pointers to my teammate's solution\n- [Background Ideas of \"Cost Minimization\" Notebook \\| Kaggle](https://www.kaggle.com/saitodevel01/background-ideas-of-cost-minimization-notebook)\n- [11.Pseudo Labeling from LB:2.586 with Retry \\| Kaggle](https://www.kaggle.com/saitodevel01/11-pseudo-labeling-from-lb-2-586-with-retry)\n\n\nPlease let us know if you have any questions!",
    "1312494": "Congrats on 9th place and becoming master @higepon. Thanks for sharing solution!",
    "1312896": "Great solution, well deserved. Congratulations on gold finish and becoming competitions master.",
    "1313235": "higepon Thanks for sharing your great solution! We applied pseudo labeling (for test data), and our CV improved 0.2 but LB improve just 0.02. How improve your LB score by pseudo labeling?",
    "1313487": "Thank you for sharing the solution and Congrats  on gold and becoming Kaggle Competitions Master!\nI have one question about train data.\n\n> We did something different\n> - Pick waypoint.\n> - Find top 200 closest wifi bssids with some meta data.\n> - This only works well with more waypoints coming from compute_step_postion.\n\nHow could you do this for test data, when we have no waypoints to pick up?",
    "1314362": "Great question. For example our first Pseudo Labeling improved score from 3.11233 -> 2.89747 in public LB.",
    "1314364": "Thank you!",
    "1314365": "Thank you KhanhVD!",
    "1314367": "Sorry I wasn't very clear. We pick timestamp of waypoint then find top 200 closest wifi using time delta. So for the test data, we just used the timestamp we're predicting.",
    "1314369": "Thank you for your reply!",
    "1314407": "Wow, that was very effective for you!\n\n> our first Pseudo Labeling\n\nIt mean you did repeatedly Pseudo Labeling several times like [7th place solution](https://www.kaggle.com/c/indoor-location-navigation/discussion/240259)?",
    "1314582": "Yes we did it repeatedly. But the thing is it didn't improve much after the first pseudo labeling for no hand labeling case (The one we submitted). But it worked better for hand labeling case. We didn't investigate why :)?",
    "1314603": "I got it. Thank you for sharing! It was very helpful for me."
  },
  "source": "meta"
}