{
  "id": 89192,
  "title": "Highest PublicLB Kernel posted (#29 Solution)",
  "content": "<p>First of all I would like to thank Kaggle team and various data donators for this challenging data-set. Starter kernel is posted is <a href=\"https://www.kaggle.com/algorrt/highest-scoring-public-kernel-starter-sol-29?scriptVersionId=12845117\">here</a></p>\n\n<p>I have mentioned scores wherever I have found some landmarks:\npubt : public train accuracy\nprit : private train accuracy</p>\n\n<p>What I tried\n- First tried running with all parameters included just to get a baseline score (<strong>pubt : lower 0.6x, prit : higher 0.5x</strong>).\n- Next I thought to create columns featuring differences in adjacent values. This showed some promising results also this features were having higher weightage predicted by lgbm. However, I was still having some doubts related to orientation values (<strong>pubt : lower 0.6x, prit : higher 0.5x</strong>).\n- Removed all orientation columns and reran, Values fell straight, but now it appears it has better private score (<strong>pubt : higher 0.4x, prit : lower 0.6x</strong>).\n- Later, I tried to predict robot's velocity with various factors present but had to give this due to \nunsatisfying results.\n- Meanwhile, <a href=\"https://www.kaggle.com/christoffer\">Christoffer Karlson</a> frequency] established <a href=\"https://www.kaggle.com/christoffer/establishing-sampling-frequency\">Sampling frequency</a>. This turned my attention to frequency domain and trying to use fft's here.\n-  As I was still testing, <a href=\"https://www.kaggle.com/trohwer64\">Thomas Rowher</a> shared this awesome <a href=\"https://www.kaggle.com/trohwer64/simple-fourier-analysis\">FFT Analysis</a> and shared his insights <a href=\"https://www.kaggle.com/c/career-con-2019/discussion/87239#503272\">here</a>.\n- Also, I was smoothing the values present in signal, with <a href=\"https://en.wikipedia.org/wiki/Savitzky%E2%80%93Golay_filter\">Savitzky-Golay</a> filter rather than averaging them out. This is great to increase SNR without distorting signal too much.\n- I started to work heavily with fft's(peaks, range, power) and I found some improvements but still I felt something was missing (<strong>pubt : lower 0.7x, prit : higher 0.6x</strong>).\n- I was thinking if maybe we could have more values in every set, and <a href=\"https://www.kaggle.com/friedchips\">Markus F</a> had an amazing find - <a href=\"https://www.kaggle.com/friedchips/the-missing-link\">Links between sets</a>. \n- Next, I tried to use more samples in every set, however I think maybe I miscalculated and had some error which resulted in lower scores. I gave up this idea.\n- Finally, I linked all the test set &amp; training sets for fun. Thought what we can see if we linked entire test with train. \n- I found a total of 151 linked sets. In which, 104 sets contained some data from train sets. These were somewhat easy to predict or so I thought.  Remaining 47 test sets were not linked to any train data. Here I put in data which I modeled with RF. And with this public train score raised to 0.96. It appeared as if I had hit gold (<strong>pubt: 0.96, prit: 0.68</strong>). I will soon publish a kernel which uses Markus links along with RF model which gives this score. Posted, check link above :)\n- However, I had a feeling this was somehow overfitting the train and public test sets. It was!!\n- I then tried to check for all the sets where different surfaces got linked. Once plotted, it was somewhat clear which were wrongly linked. Did some post-processing and reran(<strong>pubt: 0.98, prit: 0.76</strong>).</p>\n\n<p>This is the first competition I have participated strongly and it was great to learn from many people here. I would like to specially thank : </p>\n\n<p><a href=\"https://www.kaggle.com/trohwer64\">Thomas Rohwer</a>\n<a href=\"https://www.kaggle.com/friedchips\">Markus F</a>\n<a href=\"https://www.kaggle.com/christoffer\">Christoffer Karlsson</a>\n<a href=\"https://www.kaggle.com/group16\">Gilles Vandewiele</a>\n<a href=\"https://www.kaggle.com/jesucristo\">Nanashi</a></p>\n\n<p>Looking forward for more solutions from everyone :)</p>\n\n<p>PS. The idea underneath this kernel was floating on forum for more than 2 days before the competition end. </p>",
  "comments": [
    {
      "id": 515104,
      "author_name": "Eric R",
      "author_url": "",
      "post_date": "2019-04-12T07:43:59.403000",
      "content": "<p>Congrats! Look forward to your kernel.</p>",
      "votes": 0,
      "replies": [
        {
          "id": 515549,
          "author_name": "Rajanikant Tenguria",
          "author_url": "",
          "post_date": "2019-04-12T18:56:18.627000",
          "content": "<p>HI Eric, <a href=\"https://www.kaggle.com/algorrt/highest-scoring-public-kernel-starter-sol-29\">submitted</a></p>",
          "votes": 0,
          "replies": []
        }
      ]
    }
  ],
  "comment_count": 2,
  "messages": [
    {
      "id": 514956,
      "postDate": "2019-04-12T04:07:42.223Z",
      "content": "<p>First of all I would like to thank Kaggle team and various data donators for this challenging data-set. Starter kernel is posted is <a href=\"https://www.kaggle.com/algorrt/highest-scoring-public-kernel-starter-sol-29?scriptVersionId=12845117\">here</a></p>\n\n<p>I have mentioned scores wherever I have found some landmarks:\npubt : public train accuracy\nprit : private train accuracy</p>\n\n<p>What I tried\n- First tried running with all parameters included just to get a baseline score (<strong>pubt : lower 0.6x, prit : higher 0.5x</strong>).\n- Next I thought to create columns featuring differences in adjacent values. This showed some promising results also this features were having higher weightage predicted by lgbm. However, I was still having some doubts related to orientation values (<strong>pubt : lower 0.6x, prit : higher 0.5x</strong>).\n- Removed all orientation columns and reran, Values fell straight, but now it appears it has better private score (<strong>pubt : higher 0.4x, prit : lower 0.6x</strong>).\n- Later, I tried to predict robot's velocity with various factors present but had to give this due to \nunsatisfying results.\n- Meanwhile, <a href=\"https://www.kaggle.com/christoffer\">Christoffer Karlson</a> frequency] established <a href=\"https://www.kaggle.com/christoffer/establishing-sampling-frequency\">Sampling frequency</a>. This turned my attention to frequency domain and trying to use fft's here.\n-  As I was still testing, <a href=\"https://www.kaggle.com/trohwer64\">Thomas Rowher</a> shared this awesome <a href=\"https://www.kaggle.com/trohwer64/simple-fourier-analysis\">FFT Analysis</a> and shared his insights <a href=\"https://www.kaggle.com/c/career-con-2019/discussion/87239#503272\">here</a>.\n- Also, I was smoothing the values present in signal, with <a href=\"https://en.wikipedia.org/wiki/Savitzky%E2%80%93Golay_filter\">Savitzky-Golay</a> filter rather than averaging them out. This is great to increase SNR without distorting signal too much.\n- I started to work heavily with fft's(peaks, range, power) and I found some improvements but still I felt something was missing (<strong>pubt : lower 0.7x, prit : higher 0.6x</strong>).\n- I was thinking if maybe we could have more values in every set, and <a href=\"https://www.kaggle.com/friedchips\">Markus F</a> had an amazing find - <a href=\"https://www.kaggle.com/friedchips/the-missing-link\">Links between sets</a>. \n- Next, I tried to use more samples in every set, however I think maybe I miscalculated and had some error which resulted in lower scores. I gave up this idea.\n- Finally, I linked all the test set &amp; training sets for fun. Thought what we can see if we linked entire test with train. \n- I found a total of 151 linked sets. In which, 104 sets contained some data from train sets. These were somewhat easy to predict or so I thought.  Remaining 47 test sets were not linked to any train data. Here I put in data which I modeled with RF. And with this public train score raised to 0.96. It appeared as if I had hit gold (<strong>pubt: 0.96, prit: 0.68</strong>). I will soon publish a kernel which uses Markus links along with RF model which gives this score. Posted, check link above :)\n- However, I had a feeling this was somehow overfitting the train and public test sets. It was!!\n- I then tried to check for all the sets where different surfaces got linked. Once plotted, it was somewhat clear which were wrongly linked. Did some post-processing and reran(<strong>pubt: 0.98, prit: 0.76</strong>).</p>\n\n<p>This is the first competition I have participated strongly and it was great to learn from many people here. I would like to specially thank : </p>\n\n<p><a href=\"https://www.kaggle.com/trohwer64\">Thomas Rohwer</a>\n<a href=\"https://www.kaggle.com/friedchips\">Markus F</a>\n<a href=\"https://www.kaggle.com/christoffer\">Christoffer Karlsson</a>\n<a href=\"https://www.kaggle.com/group16\">Gilles Vandewiele</a>\n<a href=\"https://www.kaggle.com/jesucristo\">Nanashi</a></p>\n\n<p>Looking forward for more solutions from everyone :)</p>\n\n<p>PS. The idea underneath this kernel was floating on forum for more than 2 days before the competition end. </p>",
      "rawMarkdown": "First of all I would like to thank Kaggle team and various data donators for this challenging data-set. Starter kernel is posted is [here](https://www.kaggle.com/algorrt/highest-scoring-public-kernel-starter-sol-29?scriptVersionId=12845117)\n\nI have mentioned scores wherever I have found some landmarks:\npubt : public train accuracy\nprit : private train accuracy\n\nWhat I tried\n- First tried running with all parameters included just to get a baseline score (**pubt : lower 0.6x, prit : higher 0.5x**).\n- Next I thought to create columns featuring differences in adjacent values. This showed some promising results also this features were having higher weightage predicted by lgbm. However, I was still having some doubts related to orientation values (**pubt : lower 0.6x, prit : higher 0.5x**).\n- Removed all orientation columns and reran, Values fell straight, but now it appears it has better private score (**pubt : higher 0.4x, prit : lower 0.6x**).\n- Later, I tried to predict robot's velocity with various factors present but had to give this due to \nunsatisfying results.\n- Meanwhile, [Christoffer Karlson](https://www.kaggle.com/christoffer) frequency] established [Sampling frequency](https://www.kaggle.com/christoffer/establishing-sampling-frequency). This turned my attention to frequency domain and trying to use fft's here.\n-  As I was still testing, [Thomas Rowher](https://www.kaggle.com/trohwer64) shared this awesome [FFT Analysis](https://www.kaggle.com/trohwer64/simple-fourier-analysis) and shared his insights [here](https://www.kaggle.com/c/career-con-2019/discussion/87239#503272).\n- Also, I was smoothing the values present in signal, with [Savitzky-Golay](https://en.wikipedia.org/wiki/Savitzky%E2%80%93Golay_filter) filter rather than averaging them out. This is great to increase SNR without distorting signal too much.\n- I started to work heavily with fft's(peaks, range, power) and I found some improvements but still I felt something was missing (**pubt : lower 0.7x, prit : higher 0.6x**).\n- I was thinking if maybe we could have more values in every set, and [Markus F](https://www.kaggle.com/friedchips) had an amazing find - [Links between sets](https://www.kaggle.com/friedchips/the-missing-link). \n- Next, I tried to use more samples in every set, however I think maybe I miscalculated and had some error which resulted in lower scores. I gave up this idea.\n- Finally, I linked all the test set &amp; training sets for fun. Thought what we can see if we linked entire test with train. \n- I found a total of 151 linked sets. In which, 104 sets contained some data from train sets. These were somewhat easy to predict or so I thought.  Remaining 47 test sets were not linked to any train data. Here I put in data which I modeled with RF. And with this public train score raised to 0.96. It appeared as if I had hit gold (**pubt: 0.96, prit: 0.68**). I will soon publish a kernel which uses Markus links along with RF model which gives this score. Posted, check link above :)\n- However, I had a feeling this was somehow overfitting the train and public test sets. It was!!\n- I then tried to check for all the sets where different surfaces got linked. Once plotted, it was somewhat clear which were wrongly linked. Did some post-processing and reran(**pubt: 0.98, prit: 0.76**).\n\nThis is the first competition I have participated strongly and it was great to learn from many people here. I would like to specially thank : \n\n[Thomas Rohwer](https://www.kaggle.com/trohwer64)\n[Markus F](https://www.kaggle.com/friedchips)\n[Christoffer Karlsson](https://www.kaggle.com/christoffer)\n[Gilles Vandewiele](https://www.kaggle.com/group16)\n[Nanashi](https://www.kaggle.com/jesucristo)\n\nLooking forward for more solutions from everyone :)\n\nPS. The idea underneath this kernel was floating on forum for more than 2 days before the competition end. ",
      "votes": 3
    },
    {
      "id": 515104,
      "postDate": "2019-04-12T07:43:59.403Z",
      "content": "<p>Congrats! Look forward to your kernel.</p>",
      "rawMarkdown": "Congrats! Look forward to your kernel.",
      "replies": [
        {
          "id": 515549,
          "postDate": "2019-04-12T18:56:18.627Z",
          "content": "<p>HI Eric, <a href=\"https://www.kaggle.com/algorrt/highest-scoring-public-kernel-starter-sol-29\">submitted</a></p>",
          "rawMarkdown": "HI Eric, [submitted](https://www.kaggle.com/algorrt/highest-scoring-public-kernel-starter-sol-29)"
        }
      ]
    }
  ],
  "complete": true,
  "source": "live",
  "fetched_at": "2026-10-19T15:45:03Z",
  "competition_id": 13242,
  "competition_slug": "career-con-2019",
  "team_id": 2941272,
  "solution_url": "/competitions/career-con-2019/writeups/surfacefinder-highest-publiclb-kernel-posted-29-so"
}