{
  "id": 417791,
  "title": "62th Place Solution - Last Value and Rule-based Multiplier",
  "content": "<h2>Validation</h2>\n<p>Validation is really important for problems like this. I baffled by lots of people validating on last month without any gap. Replicating test set split was essential for the validation scheme so I used 8 folds of 2 months gap and 3 months validation with expanding window over the entire dataset. I also added 3 additional folds with their training period ending on December for simulating new year transitions. I had 11 folds but I didn't necessarily use all of them at the same time.</p>\n<h2>Models</h2>\n<p>I tried some models but none of them improved my validation score so I had to use last value baseline. These are the models and techniques I tried:</p>\n<ul>\n<li>Linear regression, LightGBM and XGBoost with raw and external pivoted features from GoDaddy Venture Forward Data Hub</li>\n<li>Linear regression with normalized month and target for each county</li>\n<li>ARIMA, SARIMAX and other auto-regressive model variations for each county</li>\n<li>Directly optimizing a multiplier for last value using bayesian optimization</li>\n<li>Last value and a ruled-based multiplier</li>\n</ul>\n<h2>Last Value + Rule-based Multiplier</h2>\n<p>As everyone knows, this was a quite strong baseline. I wasn't able to beat this with other models so I decided to improve it by making data-driven decisions.</p>\n<p>First thing I did was adjusting last values to new year which is mentioned <a href=\"https://www.kaggle.com/competitions/godaddy-microbusiness-density-forecasting/discussion/389215\" target=\"_blank\">here</a> by <a href=\"https://www.kaggle.com/cdeotte\" target=\"_blank\">@cdeotte</a>. I got similar validation score boost when I tested this adjustment on my last three folds that were simulating new year transitions.</p>\n<p>The other thing I did was checking last 5 target values of each county:</p>\n<ul>\n<li>If target increased every time: Last value is multiplied with 1.010 for March, 1.015 for April and 1.015 May</li>\n<li>If target decreased every time: Last value is multiplied with 0.998 for March, 0.994 for April and 0.990 May</li>\n<li>If target was making sideways (else case): Last value is multiplied with 1.010 for March, April and May</li>\n</ul>\n<p>Lots of time passed since submissions are closed so I don't remember my exact validation scores but I remember that I got a significant boost with this approach. I didn't use Kaggle notebooks on this competition either. I was generating submissions on local and uploading them. This repository is the only thing I can share…<br>\n<a href=\"https://github.com/gunesevitan/godaddy-microbusiness-density-forecasting/\" target=\"_blank\">https://github.com/gunesevitan/godaddy-microbusiness-density-forecasting/</a></p>\n<p>and this is the script that generates 67th place predictions.<br>\n<a href=\"https://github.com/gunesevitan/godaddy-microbusiness-density-forecasting/blob/main/src/county_models/last_value.py\" target=\"_blank\">https://github.com/gunesevitan/godaddy-microbusiness-density-forecasting/blob/main/src/county_models/last_value.py</a></p>",
  "comments": [
    {
      "id": 2306621,
      "author_name": "CoreyJamesLevinson",
      "author_url": "",
      "post_date": "2023-06-17T12:47:44.490000",
      "content": "<p>Last value was really strong! I used constants for March, April, May for all counties but using a rule-based approach would have been better. I was afraid of overfitting, but looks like it worked out of sample!</p>",
      "votes": 1,
      "replies": [
        {
          "id": 2307396,
          "author_name": "Gunes Evitan",
          "author_url": "",
          "post_date": "2023-06-18T06:42:42.933000",
          "content": "<p>I selected constants that were minimizing my validation score so I didn't think I was overfitting at any time.  </p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 2306376,
      "author_name": "Machine Lying",
      "author_url": "",
      "post_date": "2023-06-17T08:40:01.813000",
      "content": "<p>Congratulations, thank you for your proposal, this competition really showed me that sometimes simple models can bring good results, the main thing is the insight of the data😃</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 2318453,
      "author_name": "RogerOcean",
      "author_url": "",
      "post_date": "2023-06-26T11:25:53.410000",
      "content": "<p>thanks for sharing, I forgot to use rule-based model😂 even if I wrote a notebook about it <a href=\"https://www.kaggle.com/code/roger92/godaddy-select-cfips-with-strong-linear-trend\" target=\"_blank\">Godaddy: Select cfips with strong linear trend</a>. But in the final analysis, I worried about this method may cause overfitting😭</p>",
      "votes": 0,
      "replies": []
    }
  ],
  "comment_count": 4,
  "messages": [
    {
      "id": 2306265,
      "postDate": "2023-06-17T07:34:58.033Z",
      "content": "<h2>Validation</h2>\n<p>Validation is really important for problems like this. I baffled by lots of people validating on last month without any gap. Replicating test set split was essential for the validation scheme so I used 8 folds of 2 months gap and 3 months validation with expanding window over the entire dataset. I also added 3 additional folds with their training period ending on December for simulating new year transitions. I had 11 folds but I didn't necessarily use all of them at the same time.</p>\n<h2>Models</h2>\n<p>I tried some models but none of them improved my validation score so I had to use last value baseline. These are the models and techniques I tried:</p>\n<ul>\n<li>Linear regression, LightGBM and XGBoost with raw and external pivoted features from GoDaddy Venture Forward Data Hub</li>\n<li>Linear regression with normalized month and target for each county</li>\n<li>ARIMA, SARIMAX and other auto-regressive model variations for each county</li>\n<li>Directly optimizing a multiplier for last value using bayesian optimization</li>\n<li>Last value and a ruled-based multiplier</li>\n</ul>\n<h2>Last Value + Rule-based Multiplier</h2>\n<p>As everyone knows, this was a quite strong baseline. I wasn't able to beat this with other models so I decided to improve it by making data-driven decisions.</p>\n<p>First thing I did was adjusting last values to new year which is mentioned <a href=\"https://www.kaggle.com/competitions/godaddy-microbusiness-density-forecasting/discussion/389215\" target=\"_blank\">here</a> by <a href=\"https://www.kaggle.com/cdeotte\" target=\"_blank\">@cdeotte</a>. I got similar validation score boost when I tested this adjustment on my last three folds that were simulating new year transitions.</p>\n<p>The other thing I did was checking last 5 target values of each county:</p>\n<ul>\n<li>If target increased every time: Last value is multiplied with 1.010 for March, 1.015 for April and 1.015 May</li>\n<li>If target decreased every time: Last value is multiplied with 0.998 for March, 0.994 for April and 0.990 May</li>\n<li>If target was making sideways (else case): Last value is multiplied with 1.010 for March, April and May</li>\n</ul>\n<p>Lots of time passed since submissions are closed so I don't remember my exact validation scores but I remember that I got a significant boost with this approach. I didn't use Kaggle notebooks on this competition either. I was generating submissions on local and uploading them. This repository is the only thing I can share…<br>\n<a href=\"https://github.com/gunesevitan/godaddy-microbusiness-density-forecasting/\" target=\"_blank\">https://github.com/gunesevitan/godaddy-microbusiness-density-forecasting/</a></p>\n<p>and this is the script that generates 67th place predictions.<br>\n<a href=\"https://github.com/gunesevitan/godaddy-microbusiness-density-forecasting/blob/main/src/county_models/last_value.py\" target=\"_blank\">https://github.com/gunesevitan/godaddy-microbusiness-density-forecasting/blob/main/src/county_models/last_value.py</a></p>",
      "rawMarkdown": "## Validation\n\nValidation is really important for problems like this. I baffled by lots of people validating on last month without any gap. Replicating test set split was essential for the validation scheme so I used 8 folds of 2 months gap and 3 months validation with expanding window over the entire dataset. I also added 3 additional folds with their training period ending on December for simulating new year transitions. I had 11 folds but I didn't necessarily use all of them at the same time.\n\n## Models\n\nI tried some models but none of them improved my validation score so I had to use last value baseline. These are the models and techniques I tried:\n* Linear regression, LightGBM and XGBoost with raw and external pivoted features from GoDaddy Venture Forward Data Hub\n* Linear regression with normalized month and target for each county\n* ARIMA, SARIMAX and other auto-regressive model variations for each county\n* Directly optimizing a multiplier for last value using bayesian optimization\n* Last value and a ruled-based multiplier\n\n## Last Value + Rule-based Multiplier\n\nAs everyone knows, this was a quite strong baseline. I wasn't able to beat this with other models so I decided to improve it by making data-driven decisions.\n\nFirst thing I did was adjusting last values to new year which is mentioned [here](https://www.kaggle.com/competitions/godaddy-microbusiness-density-forecasting/discussion/389215) by @cdeotte. I got similar validation score boost when I tested this adjustment on my last three folds that were simulating new year transitions.\n\nThe other thing I did was checking last 5 target values of each county:\n* If target increased every time: Last value is multiplied with 1.010 for March, 1.015 for April and 1.015 May\n* If target decreased every time: Last value is multiplied with 0.998 for March, 0.994 for April and 0.990 May\n* If target was making sideways (else case): Last value is multiplied with 1.010 for March, April and May\n\nLots of time passed since submissions are closed so I don't remember my exact validation scores but I remember that I got a significant boost with this approach. I didn't use Kaggle notebooks on this competition either. I was generating submissions on local and uploading them. This repository is the only thing I can share...\nhttps://github.com/gunesevitan/godaddy-microbusiness-density-forecasting/\n\nand this is the script that generates 67th place predictions.\nhttps://github.com/gunesevitan/godaddy-microbusiness-density-forecasting/blob/main/src/county_models/last_value.py",
      "votes": 19
    },
    {
      "id": 2306621,
      "postDate": "2023-06-17T12:47:44.490Z",
      "content": "<p>Last value was really strong! I used constants for March, April, May for all counties but using a rule-based approach would have been better. I was afraid of overfitting, but looks like it worked out of sample!</p>",
      "rawMarkdown": "Last value was really strong! I used constants for March, April, May for all counties but using a rule-based approach would have been better. I was afraid of overfitting, but looks like it worked out of sample!",
      "votes": 1,
      "replies": [
        {
          "id": 2307396,
          "postDate": "2023-06-18T06:42:42.933Z",
          "content": "<p>I selected constants that were minimizing my validation score so I didn't think I was overfitting at any time.  </p>",
          "rawMarkdown": "I selected constants that were minimizing my validation score so I didn't think I was overfitting at any time.  ",
          "votes": 1
        }
      ]
    },
    {
      "id": 2306376,
      "postDate": "2023-06-17T08:40:01.813Z",
      "content": "<p>Congratulations, thank you for your proposal, this competition really showed me that sometimes simple models can bring good results, the main thing is the insight of the data😃</p>",
      "rawMarkdown": "Congratulations, thank you for your proposal, this competition really showed me that sometimes simple models can bring good results, the main thing is the insight of the data😃",
      "votes": 1
    },
    {
      "id": 2318453,
      "postDate": "2023-06-26T11:25:53.410Z",
      "content": "<p>thanks for sharing, I forgot to use rule-based model😂 even if I wrote a notebook about it <a href=\"https://www.kaggle.com/code/roger92/godaddy-select-cfips-with-strong-linear-trend\" target=\"_blank\">Godaddy: Select cfips with strong linear trend</a>. But in the final analysis, I worried about this method may cause overfitting😭</p>",
      "rawMarkdown": "thanks for sharing, I forgot to use rule-based model😂 even if I wrote a notebook about it [Godaddy: Select cfips with strong linear trend](https://www.kaggle.com/code/roger92/godaddy-select-cfips-with-strong-linear-trend). But in the final analysis, I worried about this method may cause overfitting😭"
    }
  ],
  "complete": true,
  "source": "live",
  "fetched_at": "2026-10-19T19:28:19Z",
  "competition_id": 41881,
  "competition_slug": "godaddy-microbusiness-density-forecasting",
  "team_id": 9628036,
  "solution_url": "/competitions/godaddy-microbusiness-density-forecasting/writeups/daddy-62th-place-solution-last-value-and-rule-base"
}