{
  "id": 66813,
  "title": "LGB interpretation for unseen continuous values",
  "url": "/competitions/ga-customer-revenue-prediction/discussion/66813",
  "author_name": "",
  "post_date": "2018-09-25T18:29:46.452576500Z",
  "votes": 2,
  "comment_count": 5,
  "views": 0,
  "content": "<p>what will be the lgb interpretation for unseen continuous valued feature. For example, let's say an LGB model was trained on a continuous feature f1 having values in the range (1,10) and now it is to be tested on a test set having values for f1 in range(11,30), then how lgb will handle these new interpretation?</p>",
  "messages": [
    {
      "id": "393667",
      "postDate": "09/25/2018 18:29:46",
      "content": "<p>what will be the lgb interpretation for unseen continuous valued feature. For example, let's say an LGB model was trained on a continuous feature f1 having values in the range (1,10) and now it is to be tested on a test set having values for f1 in range(11,30), then how lgb will handle these new interpretation?</p>",
      "rawMarkdown": "what will be the lgb interpretation for unseen continuous valued feature. For example, let's say an LGB model was trained on a continuous feature f1 having values in the range (1,10) and now it is to be tested on a test set having values for f1 in range(11,30), then how lgb will handle these new interpretation?",
      "votes": null
    },
    {
      "id": "393802",
      "postDate": "09/25/2018 22:44:28",
      "content": "<p>I think <a href=\"https://github.com/dmlc/xgboost/issues/1581#issuecomment-249846368\">this</a> is a pretty good explanation oh how an unseen range is handled by LGB.</p>\n\n<blockquote>\n  <p>It is not aware on the bounds of the values of the feature. All it knows is \"greater than\" or \"lower than\" to choose the cut point.</p>\n</blockquote>",
      "rawMarkdown": "I think [this][1] is a pretty good explanation oh how an unseen range is handled by LGB.\n\n&gt; It is not aware on the bounds of the values of the feature. All it knows is \"greater than\" or \"lower than\" to choose the cut point.\n\n  [1]: https://github.com/dmlc/xgboost/issues/1581#issuecomment-249846368",
      "votes": null
    },
    {
      "id": "393925",
      "postDate": "09/26/2018 04:32:19",
      "content": "<p>Thanks for the resource. but according to that, the cut point will always be &gt;=lower bound and &lt;=upper bound values for that feature, now in test set, if we have our distribution for this feature such that even lowest value is &gt;= upper bound of train set, then at the point of splitting, our test set will now never split in two parts as we will always reach in region of &gt;= upper bound, that way, this splitting node will become useless I think. correct me, if I am wrong!!</p>",
      "rawMarkdown": "Thanks for the resource. but according to that, the cut point will always be &gt;=lower bound and &lt;=upper bound values for that feature, now in test set, if we have our distribution for this feature such that even lowest value is &gt;= upper bound of train set, then at the point of splitting, our test set will now never split in two parts as we will always reach in region of &gt;= upper bound, that way, this splitting node will become useless I think. correct me, if I am wrong!!",
      "votes": null
    },
    {
      "id": "393962",
      "postDate": "09/26/2018 05:55:15",
      "content": "<p>You can always make experiment and see what happens. As for competition environment, the situation with unseen data can be avoided.</p>",
      "rawMarkdown": "You can always make experiment and see what happens. As for competition environment, the situation with unseen data can be avoided.",
      "votes": null
    },
    {
      "id": "394424",
      "postDate": "09/26/2018 20:02:07",
      "content": "<p>A caveat: LightGBM performs bucketing for continuous features if the number of unique features is &lt; 255. This is according to the <code>max_bin</code> parameter. So, I wonder what happens if you have <code>1, 2, ..., 254</code> as unique continuous features then you have new values <code>255, 256, 257, ..., 300</code> in the test set. I wonder how LightGBM adapts to revert from a binning approach to a numerical splits approach. Hm! If anyone knows please comment</p>",
      "rawMarkdown": "A caveat: LightGBM performs bucketing for continuous features if the number of unique features is &lt; 255. This is according to the `max_bin` parameter. So, I wonder what happens if you have `1, 2, ..., 254` as unique continuous features then you have new values `255, 256, 257, ..., 300` in the test set. I wonder how LightGBM adapts to revert from a binning approach to a numerical splits approach. Hm! If anyone knows please comment",
      "votes": null
    },
    {
      "id": "394437",
      "postDate": "09/26/2018 20:46:11",
      "content": "<p><em>As for competition environment, the situation with unseen data can be avoided</em> </p>\n\n<p>Well I don't think so!! That will not help at all.</p>",
      "rawMarkdown": "*As for competition environment, the situation with unseen data can be avoided* \n\nWell I don't think so!! That will not help at all.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 393802,
      "author_name": "nnnnick",
      "author_url": "",
      "post_date": "09/25/2018 22:44:28",
      "content": "<p>I think <a href=\"https://github.com/dmlc/xgboost/issues/1581#issuecomment-249846368\">this</a> is a pretty good explanation oh how an unseen range is handled by LGB.</p>\n\n<blockquote>\n  <p>It is not aware on the bounds of the values of the feature. All it knows is \"greater than\" or \"lower than\" to choose the cut point.</p>\n</blockquote>",
      "votes": null,
      "replies": [
        {
          "id": 393925,
          "author_name": "mk9440",
          "author_url": "",
          "post_date": "09/26/2018 04:32:19",
          "content": "<p>Thanks for the resource. but according to that, the cut point will always be &gt;=lower bound and &lt;=upper bound values for that feature, now in test set, if we have our distribution for this feature such that even lowest value is &gt;= upper bound of train set, then at the point of splitting, our test set will now never split in two parts as we will always reach in region of &gt;= upper bound, that way, this splitting node will become useless I think. correct me, if I am wrong!!</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 394424,
          "author_name": "returnofsputnik",
          "author_url": "",
          "post_date": "09/26/2018 20:02:07",
          "content": "<p>A caveat: LightGBM performs bucketing for continuous features if the number of unique features is &lt; 255. This is according to the <code>max_bin</code> parameter. So, I wonder what happens if you have <code>1, 2, ..., 254</code> as unique continuous features then you have new values <code>255, 256, 257, ..., 300</code> in the test set. I wonder how LightGBM adapts to revert from a binning approach to a numerical splits approach. Hm! If anyone knows please comment</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 393962,
      "author_name": "alexfir",
      "author_url": "",
      "post_date": "09/26/2018 05:55:15",
      "content": "<p>You can always make experiment and see what happens. As for competition environment, the situation with unseen data can be avoided.</p>",
      "votes": null,
      "replies": [
        {
          "id": 394437,
          "author_name": "mk9440",
          "author_url": "",
          "post_date": "09/26/2018 20:46:11",
          "content": "<p><em>As for competition environment, the situation with unseen data can be avoided</em> </p>\n\n<p>Well I don't think so!! That will not help at all.</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "393667": "what will be the lgb interpretation for unseen continuous valued feature. For example, let's say an LGB model was trained on a continuous feature f1 having values in the range (1,10) and now it is to be tested on a test set having values for f1 in range(11,30), then how lgb will handle these new interpretation?",
    "393802": "I think [this][1] is a pretty good explanation oh how an unseen range is handled by LGB.\n\n&gt; It is not aware on the bounds of the values of the feature. All it knows is \"greater than\" or \"lower than\" to choose the cut point.\n\n  [1]: https://github.com/dmlc/xgboost/issues/1581#issuecomment-249846368",
    "393925": "Thanks for the resource. but according to that, the cut point will always be &gt;=lower bound and &lt;=upper bound values for that feature, now in test set, if we have our distribution for this feature such that even lowest value is &gt;= upper bound of train set, then at the point of splitting, our test set will now never split in two parts as we will always reach in region of &gt;= upper bound, that way, this splitting node will become useless I think. correct me, if I am wrong!!",
    "393962": "You can always make experiment and see what happens. As for competition environment, the situation with unseen data can be avoided.",
    "394424": "A caveat: LightGBM performs bucketing for continuous features if the number of unique features is &lt; 255. This is according to the `max_bin` parameter. So, I wonder what happens if you have `1, 2, ..., 254` as unique continuous features then you have new values `255, 256, 257, ..., 300` in the test set. I wonder how LightGBM adapts to revert from a binning approach to a numerical splits approach. Hm! If anyone knows please comment",
    "394437": "*As for competition environment, the situation with unseen data can be avoided* \n\nWell I don't think so!! That will not help at all."
  },
  "source": "meta"
}