{
  "id": 453869,
  "title": "Postprocessing",
  "url": "/competitions/child-mind-institute-detect-sleep-states/discussion/453869",
  "author_name": "",
  "post_date": "2023-11-08T03:26:05.093914700Z",
  "votes": 3,
  "comment_count": 6,
  "views": 0,
  "content": "<p>My model's accuracy or F1 score hangs around 0.97~0.98, but its predictions for the test set are counterintuitive. Predicted sleep periods range from a few minutes to a few hours. And there are too many sleep periods.</p>\n<ol>\n<li><p>Do you guys also have similar problems? </p></li>\n<li><p>How do you deal with the predicted labels? </p></li>\n<li><p>How much does your model score for these metrics?</p></li>\n<li><p>Do metrics like accuracy or F1 score for each row of the test set matter in this competition? (I believe not.)</p></li>\n<li><p>What is your postprocessing technique?</p></li>\n</ol>",
  "messages": [
    {
      "id": "2516884",
      "postDate": "11/08/2023 03:26:05",
      "content": "<p>My model's accuracy or F1 score hangs around 0.97~0.98, but its predictions for the test set are counterintuitive. Predicted sleep periods range from a few minutes to a few hours. And there are too many sleep periods.</p>\n<ol>\n<li><p>Do you guys also have similar problems? </p></li>\n<li><p>How do you deal with the predicted labels? </p></li>\n<li><p>How much does your model score for these metrics?</p></li>\n<li><p>Do metrics like accuracy or F1 score for each row of the test set matter in this competition? (I believe not.)</p></li>\n<li><p>What is your postprocessing technique?</p></li>\n</ol>",
      "rawMarkdown": "My model's accuracy or F1 score hangs around 0.97~0.98, but its predictions for the test set are counterintuitive. Predicted sleep periods range from a few minutes to a few hours. And there are too many sleep periods.\n\n1. Do you guys also have similar problems? \n\n2. How do you deal with the predicted labels? \n\n3. How much does your model score for these metrics?\n\n4. Do metrics like accuracy or F1 score for each row of the test set matter in this competition? (I believe not.)\n\n5. What is your postprocessing technique?",
      "votes": null
    },
    {
      "id": "2517074",
      "postDate": "11/08/2023 07:38:27",
      "content": "<p>I suggest that you validate your models on mAP, since it is the competition's evaluation metric, you can find examples of implementation in public notebooks.</p>\n<p>As for post processing, there are plenty of things you can try, and it depends on your modeling strategy. But they all try to look for the most relevant signal that can be classified as transition time (onset or wakeup). You can also start by looking at public notebooks to get a general idea and build from there.</p>",
      "rawMarkdown": "I suggest that you validate your models on mAP, since it is the competition's evaluation metric, you can find examples of implementation in public notebooks.\n\nAs for post processing, there are plenty of things you can try, and it depends on your modeling strategy. But they all try to look for the most relevant signal that can be classified as transition time (onset or wakeup). You can also start by looking at public notebooks to get a general idea and build from there.",
      "votes": null
    },
    {
      "id": "2517199",
      "postDate": "11/08/2023 09:27:26",
      "content": "<p>Thank you, Catharis!</p>",
      "rawMarkdown": "Thank you, Catharis!",
      "votes": null
    },
    {
      "id": "2522174",
      "postDate": "11/12/2023 12:56:10",
      "content": "<p>Hello, try the competition metric and build a reliable validation (divide data by series_id). As for postprocessing, I suppose that there is not too much to do. You can try to average predictions from models, for example, two models give you steps 1000 and 1010 as a prediction, then take the 1005th step as a final prediction. Also remember that all answers are exactly on minutes with 0 seconds. You can also try to limit the number of events by day. For example in the train set there was only 1 day, where a person had 4 events, in other cases it is no more than 3. </p>",
      "rawMarkdown": "Hello, try the competition metric and build a reliable validation (divide data by series_id). As for postprocessing, I suppose that there is not too much to do. You can try to average predictions from models, for example, two models give you steps 1000 and 1010 as a prediction, then take the 1005th step as a final prediction. Also remember that all answers are exactly on minutes with 0 seconds. You can also try to limit the number of events by day. For example in the train set there was only 1 day, where a person had 4 events, in other cases it is no more than 3.",
      "votes": null
    },
    {
      "id": "2522320",
      "postDate": "11/12/2023 15:34:15",
      "content": "<p>It's a good idea! I appreciate it.</p>",
      "rawMarkdown": "It's a good idea! I appreciate it.",
      "votes": null
    },
    {
      "id": "2522912",
      "postDate": "11/13/2023 06:43:11",
      "content": "<p>You might want to try using NMS (non-maximal suppression)：<br>\nyou can find more information in:<br>\n<a href=\"https://www.kaggle.com/competitions/dfl-bundesliga-data-shootout/discussion/360236\" target=\"_blank\">https://www.kaggle.com/competitions/dfl-bundesliga-data-shootout/discussion/360236</a></p>",
      "rawMarkdown": "You might want to try using NMS (non-maximal suppression)：\nyou can find more information in:\n[https://www.kaggle.com/competitions/dfl-bundesliga-data-shootout/discussion/360236](https://www.kaggle.com/competitions/dfl-bundesliga-data-shootout/discussion/360236)",
      "votes": null
    },
    {
      "id": "2538675",
      "postDate": "11/26/2023 11:29:12",
      "content": "<p>I'll check on it. Appreciate it!</p>",
      "rawMarkdown": "I'll check on it. Appreciate it!",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 2517074,
      "author_name": "fahmiayari",
      "author_url": "",
      "post_date": "11/08/2023 07:38:27",
      "content": "<p>I suggest that you validate your models on mAP, since it is the competition's evaluation metric, you can find examples of implementation in public notebooks.</p>\n<p>As for post processing, there are plenty of things you can try, and it depends on your modeling strategy. But they all try to look for the most relevant signal that can be classified as transition time (onset or wakeup). You can also start by looking at public notebooks to get a general idea and build from there.</p>",
      "votes": null,
      "replies": [
        {
          "id": 2517199,
          "author_name": "cgl029",
          "author_url": "",
          "post_date": "11/08/2023 09:27:26",
          "content": "<p>Thank you, Catharis!</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 2522174,
      "author_name": "manwithaflower",
      "author_url": "",
      "post_date": "11/12/2023 12:56:10",
      "content": "<p>Hello, try the competition metric and build a reliable validation (divide data by series_id). As for postprocessing, I suppose that there is not too much to do. You can try to average predictions from models, for example, two models give you steps 1000 and 1010 as a prediction, then take the 1005th step as a final prediction. Also remember that all answers are exactly on minutes with 0 seconds. You can also try to limit the number of events by day. For example in the train set there was only 1 day, where a person had 4 events, in other cases it is no more than 3. </p>",
      "votes": null,
      "replies": [
        {
          "id": 2522320,
          "author_name": "cgl029",
          "author_url": "",
          "post_date": "11/12/2023 15:34:15",
          "content": "<p>It's a good idea! I appreciate it.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 2522912,
      "author_name": "jimmyisme1",
      "author_url": "",
      "post_date": "11/13/2023 06:43:11",
      "content": "<p>You might want to try using NMS (non-maximal suppression)：<br>\nyou can find more information in:<br>\n<a href=\"https://www.kaggle.com/competitions/dfl-bundesliga-data-shootout/discussion/360236\" target=\"_blank\">https://www.kaggle.com/competitions/dfl-bundesliga-data-shootout/discussion/360236</a></p>",
      "votes": null,
      "replies": [
        {
          "id": 2538675,
          "author_name": "cgl029",
          "author_url": "",
          "post_date": "11/26/2023 11:29:12",
          "content": "<p>I'll check on it. Appreciate it!</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "2516884": "My model's accuracy or F1 score hangs around 0.97~0.98, but its predictions for the test set are counterintuitive. Predicted sleep periods range from a few minutes to a few hours. And there are too many sleep periods.\n\n1. Do you guys also have similar problems? \n\n2. How do you deal with the predicted labels? \n\n3. How much does your model score for these metrics?\n\n4. Do metrics like accuracy or F1 score for each row of the test set matter in this competition? (I believe not.)\n\n5. What is your postprocessing technique?",
    "2517074": "I suggest that you validate your models on mAP, since it is the competition's evaluation metric, you can find examples of implementation in public notebooks.\n\nAs for post processing, there are plenty of things you can try, and it depends on your modeling strategy. But they all try to look for the most relevant signal that can be classified as transition time (onset or wakeup). You can also start by looking at public notebooks to get a general idea and build from there.",
    "2517199": "Thank you, Catharis!",
    "2522174": "Hello, try the competition metric and build a reliable validation (divide data by series_id). As for postprocessing, I suppose that there is not too much to do. You can try to average predictions from models, for example, two models give you steps 1000 and 1010 as a prediction, then take the 1005th step as a final prediction. Also remember that all answers are exactly on minutes with 0 seconds. You can also try to limit the number of events by day. For example in the train set there was only 1 day, where a person had 4 events, in other cases it is no more than 3.",
    "2522320": "It's a good idea! I appreciate it.",
    "2522912": "You might want to try using NMS (non-maximal suppression)：\nyou can find more information in:\n[https://www.kaggle.com/competitions/dfl-bundesliga-data-shootout/discussion/360236](https://www.kaggle.com/competitions/dfl-bundesliga-data-shootout/discussion/360236)",
    "2538675": "I'll check on it. Appreciate it!"
  },
  "source": "meta"
}