{
  "id": 114299,
  "title": "How to detect changes from a single year?",
  "url": "/competitions/ashrae-energy-prediction/discussion/114299",
  "author_name": "",
  "post_date": "2019-10-25T11:08:02.809145900Z",
  "votes": 8,
  "comment_count": 6,
  "views": 0,
  "content": "<p>When you plot electricity for some buildings, it seems that there may be structural changes. But how can one ever confirm that, when only 1 year is given?</p>\n\n<p>For example\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F72177%2F1d66f9d8f17be2cd0b13bfd666795058%2Fel1.png?generation=1572001313000036&amp;alt=media\" alt=\"\">\nIt is impossible to use statistics to decide whether the usage has just reached a new level and the December mean should applied for all of the future, or whether the early year lower level will work again for the next year, right?</p>\n\n<p>Or for example\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F72177%2F02706d58944505e5843675a2154ff92f%2Fel2.png?generation=1572001435882495&amp;alt=media\" alt=\"\">\nHere at least January and December levels match, but it is impossible to know whether the May/June usage is an outlier and is going to repeat?</p>\n\n<p>Does that makes sense? Do you see a way to compensate for these ambiguities?</p>\n\n<p>Making the wrong assumption could worsen the score considerably. Maybe only tedious LB probing for each building can resolve that? Maybe we should get another training year?</p>\n\n<p>What do you think?</p>",
  "messages": [
    {
      "id": "657682",
      "postDate": "10/25/2019 11:08:02",
      "content": "<p>When you plot electricity for some buildings, it seems that there may be structural changes. But how can one ever confirm that, when only 1 year is given?</p>\n\n<p>For example\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F72177%2F1d66f9d8f17be2cd0b13bfd666795058%2Fel1.png?generation=1572001313000036&amp;alt=media\" alt=\"\">\nIt is impossible to use statistics to decide whether the usage has just reached a new level and the December mean should applied for all of the future, or whether the early year lower level will work again for the next year, right?</p>\n\n<p>Or for example\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F72177%2F02706d58944505e5843675a2154ff92f%2Fel2.png?generation=1572001435882495&amp;alt=media\" alt=\"\">\nHere at least January and December levels match, but it is impossible to know whether the May/June usage is an outlier and is going to repeat?</p>\n\n<p>Does that makes sense? Do you see a way to compensate for these ambiguities?</p>\n\n<p>Making the wrong assumption could worsen the score considerably. Maybe only tedious LB probing for each building can resolve that? Maybe we should get another training year?</p>\n\n<p>What do you think?</p>",
      "rawMarkdown": "When you plot electricity for some buildings, it seems that there may be structural changes. But how can one ever confirm that, when only 1 year is given?\n\nFor example\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F72177%2F1d66f9d8f17be2cd0b13bfd666795058%2Fel1.png?generation=1572001313000036&amp;alt=media)\nIt is impossible to use statistics to decide whether the usage has just reached a new level and the December mean should applied for all of the future, or whether the early year lower level will work again for the next year, right?\n\nOr for example\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F72177%2F02706d58944505e5843675a2154ff92f%2Fel2.png?generation=1572001435882495&amp;alt=media)\nHere at least January and December levels match, but it is impossible to know whether the May/June usage is an outlier and is going to repeat?\n\nDoes that makes sense? Do you see a way to compensate for these ambiguities?\n\nMaking the wrong assumption could worsen the score considerably. Maybe only tedious LB probing for each building can resolve that? Maybe we should get another training year?\n\nWhat do you think?",
      "votes": null
    },
    {
      "id": "658050",
      "postDate": "10/25/2019 16:16:13",
      "content": "<p>very good points, I also have done some experiments and now begin to think .. about good validation.\nFirst I used last 20% as hold out set and got surprisingly a good single model lb 1.20, then I tuned something, validation got better (1.10 -&gt; 1.06) but lb went up to 1.26. In these experiments I retrained on all data for test prediction.\nBest kernels use \"stratify data by building_id\", does this mean split train/valid by building_id in each fold? I tried this and got horrible validation error of 1.59. This means that I predict unknown building_id's, which don't make sense to me.\nRandom subset results in very low validation error of 0.5 or so.\nSo far I don't find a proper validation schema that simulates the train/test split. To capture drift over a year I need at least the whole year in train.\nIf we would have 2 years of training data I can probably safe use first year for train, second for valid (as you said).</p>",
      "rawMarkdown": "very good points, I also have done some experiments and now begin to think .. about good validation.\nFirst I used last 20% as hold out set and got surprisingly a good single model lb 1.20, then I tuned something, validation got better (1.10 -&gt; 1.06) but lb went up to 1.26. In these experiments I retrained on all data for test prediction.\nBest kernels use \"stratify data by building_id\", does this mean split train/valid by building_id in each fold? I tried this and got horrible validation error of 1.59. This means that I predict unknown building_id's, which don't make sense to me.\nRandom subset results in very low validation error of 0.5 or so.\nSo far I don't find a proper validation schema that simulates the train/test split. To capture drift over a year I need at least the whole year in train.\nIf we would have 2 years of training data I can probably safe use first year for train, second for valid (as you said).",
      "votes": null
    },
    {
      "id": "658091",
      "postDate": "10/25/2019 16:52:29",
      "content": "<p>1393(building id) probably belongs to 15(site id), and you might see that this category has common missing(?) periods between feb/apr. It seems like someone artificially interpolated the gap by a line(including air temperature and dew temperature). Moreover, there are significant losses in the other features also I think. We have to deal with this.</p>",
      "rawMarkdown": "1393(building id) probably belongs to 15(site id), and you might see that this category has common missing(?) periods between feb/apr. It seems like someone artificially interpolated the gap by a line(including air temperature and dew temperature). Moreover, there are significant losses in the other features also I think. We have to deal with this.",
      "votes": null
    },
    {
      "id": "658103",
      "postDate": "10/25/2019 17:02:08",
      "content": "<p>Well, yes. But will there be a gap in 2017? There is absolutely nothing - apart from LB probing - that can answer that.</p>",
      "rawMarkdown": "Well, yes. But will there be a gap in 2017? There is absolutely nothing - apart from LB probing - that can answer that.",
      "votes": null
    },
    {
      "id": "658107",
      "postDate": "10/25/2019 17:07:25",
      "content": "<p>Yes, LB probing will be the best way for validation, but 2 subs a day really su...</p>",
      "rawMarkdown": "Yes, LB probing will be the best way for validation, but 2 subs a day really su...",
      "votes": null
    },
    {
      "id": "658123",
      "postDate": "10/25/2019 17:24:56",
      "content": "<p>Stratification with building id means the distribution of buildings in train and val is same. </p>",
      "rawMarkdown": "Stratification with building id means the distribution of buildings in train and val is same.",
      "votes": null
    },
    {
      "id": "664985",
      "postDate": "11/04/2019 13:47:49",
      "content": "<p>You can only assume that the label is highly related to weather data, otherwise, it is quite hard! </p>",
      "rawMarkdown": "You can only assume that the label is highly related to weather data, otherwise, it is quite hard!",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 658050,
      "author_name": "mjahrer",
      "author_url": "",
      "post_date": "10/25/2019 16:16:13",
      "content": "<p>very good points, I also have done some experiments and now begin to think .. about good validation.\nFirst I used last 20% as hold out set and got surprisingly a good single model lb 1.20, then I tuned something, validation got better (1.10 -&gt; 1.06) but lb went up to 1.26. In these experiments I retrained on all data for test prediction.\nBest kernels use \"stratify data by building_id\", does this mean split train/valid by building_id in each fold? I tried this and got horrible validation error of 1.59. This means that I predict unknown building_id's, which don't make sense to me.\nRandom subset results in very low validation error of 0.5 or so.\nSo far I don't find a proper validation schema that simulates the train/test split. To capture drift over a year I need at least the whole year in train.\nIf we would have 2 years of training data I can probably safe use first year for train, second for valid (as you said).</p>",
      "votes": null,
      "replies": [
        {
          "id": 658123,
          "author_name": "suchith0312",
          "author_url": "",
          "post_date": "10/25/2019 17:24:56",
          "content": "<p>Stratification with building id means the distribution of buildings in train and val is same. </p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 658091,
      "author_name": "hanjoonchoe",
      "author_url": "",
      "post_date": "10/25/2019 16:52:29",
      "content": "<p>1393(building id) probably belongs to 15(site id), and you might see that this category has common missing(?) periods between feb/apr. It seems like someone artificially interpolated the gap by a line(including air temperature and dew temperature). Moreover, there are significant losses in the other features also I think. We have to deal with this.</p>",
      "votes": null,
      "replies": [
        {
          "id": 658103,
          "author_name": "superant",
          "author_url": "",
          "post_date": "10/25/2019 17:02:08",
          "content": "<p>Well, yes. But will there be a gap in 2017? There is absolutely nothing - apart from LB probing - that can answer that.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 658107,
          "author_name": "mjahrer",
          "author_url": "",
          "post_date": "10/25/2019 17:07:25",
          "content": "<p>Yes, LB probing will be the best way for validation, but 2 subs a day really su...</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 664985,
      "author_name": "longyin2",
      "author_url": "",
      "post_date": "11/04/2019 13:47:49",
      "content": "<p>You can only assume that the label is highly related to weather data, otherwise, it is quite hard! </p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "657682": "When you plot electricity for some buildings, it seems that there may be structural changes. But how can one ever confirm that, when only 1 year is given?\n\nFor example\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F72177%2F1d66f9d8f17be2cd0b13bfd666795058%2Fel1.png?generation=1572001313000036&amp;alt=media)\nIt is impossible to use statistics to decide whether the usage has just reached a new level and the December mean should applied for all of the future, or whether the early year lower level will work again for the next year, right?\n\nOr for example\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F72177%2F02706d58944505e5843675a2154ff92f%2Fel2.png?generation=1572001435882495&amp;alt=media)\nHere at least January and December levels match, but it is impossible to know whether the May/June usage is an outlier and is going to repeat?\n\nDoes that makes sense? Do you see a way to compensate for these ambiguities?\n\nMaking the wrong assumption could worsen the score considerably. Maybe only tedious LB probing for each building can resolve that? Maybe we should get another training year?\n\nWhat do you think?",
    "658050": "very good points, I also have done some experiments and now begin to think .. about good validation.\nFirst I used last 20% as hold out set and got surprisingly a good single model lb 1.20, then I tuned something, validation got better (1.10 -&gt; 1.06) but lb went up to 1.26. In these experiments I retrained on all data for test prediction.\nBest kernels use \"stratify data by building_id\", does this mean split train/valid by building_id in each fold? I tried this and got horrible validation error of 1.59. This means that I predict unknown building_id's, which don't make sense to me.\nRandom subset results in very low validation error of 0.5 or so.\nSo far I don't find a proper validation schema that simulates the train/test split. To capture drift over a year I need at least the whole year in train.\nIf we would have 2 years of training data I can probably safe use first year for train, second for valid (as you said).",
    "658091": "1393(building id) probably belongs to 15(site id), and you might see that this category has common missing(?) periods between feb/apr. It seems like someone artificially interpolated the gap by a line(including air temperature and dew temperature). Moreover, there are significant losses in the other features also I think. We have to deal with this.",
    "658103": "Well, yes. But will there be a gap in 2017? There is absolutely nothing - apart from LB probing - that can answer that.",
    "658107": "Yes, LB probing will be the best way for validation, but 2 subs a day really su...",
    "658123": "Stratification with building id means the distribution of buildings in train and val is same.",
    "664985": "You can only assume that the label is highly related to weather data, otherwise, it is quite hard!"
  },
  "source": "meta"
}