{
  "id": 174774,
  "title": "How to do badcase study in this competition?",
  "url": "/competitions/birdsong-recognition/discussion/174774",
  "author_name": "",
  "post_date": "2020-08-15T08:39:38.927886600Z",
  "votes": 3,
  "comment_count": 7,
  "views": 0,
  "content": "<p>I think badcase analysis is very important in ML. But in this competition, I have tried to see some samples that model classifies wrong and want to get some inspiration, I can not even distinguish those birds. <br>\nSo how do you guys do case study in here?</p>",
  "messages": [
    {
      "id": "971171",
      "postDate": "08/15/2020 08:39:38",
      "content": "<p>I think badcase analysis is very important in ML. But in this competition, I have tried to see some samples that model classifies wrong and want to get some inspiration, I can not even distinguish those birds. <br>\nSo how do you guys do case study in here?</p>",
      "rawMarkdown": "I think badcase analysis is very important in ML. But in this competition, I have tried to see some samples that model classifies wrong and want to get some inspiration, I can not even distinguish those birds. \nSo how do you guys do case study in here?",
      "votes": null
    },
    {
      "id": "971375",
      "postDate": "08/15/2020 13:17:32",
      "content": "<p>you can make figures like the below:</p>\n<ul>\n<li>red : frame-wise prediction</li>\n<li>yellow : ground truth</li>\n</ul>\n<p>you can study the local validation results or the sample test soundscape files or BirdCLEF2020 files</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F113660%2F682c77e9abd75f56c6ec60c6ec3bfffd%2FSelection_028.png?generation=1597497433484980&amp;alt=media\" alt=\"\"></p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F113660%2Fdbd09bbb2e6aadd76904dc7cb15d0d21%2FSelection_032.png?generation=1597497450806997&amp;alt=media\" alt=\"\"></p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F113660%2Ffbf767f7654e793fe504ea58b4e9c670%2FSelection_030.png?generation=1597497556763483&amp;alt=media\" alt=\"\"></p>",
      "rawMarkdown": "you can make figures like the below:\n- red : frame-wise prediction\n- yellow : ground truth\n\nyou can study the local validation results or the sample test soundscape files or BirdCLEF2020 files\n\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F113660%2F682c77e9abd75f56c6ec60c6ec3bfffd%2FSelection_028.png?generation=1597497433484980&alt=media)\n\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F113660%2Fdbd09bbb2e6aadd76904dc7cb15d0d21%2FSelection_032.png?generation=1597497450806997&alt=media)\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F113660%2Ffbf767f7654e793fe504ea58b4e9c670%2FSelection_030.png?generation=1597497556763483&alt=media)",
      "votes": null
    },
    {
      "id": "971591",
      "postDate": "08/15/2020 17:39:18",
      "content": "<p>Thanks a lot, the figures look great! Could you share some codes to generate it?</p>",
      "rawMarkdown": "Thanks a lot, the figures look great! Could you share some codes to generate it?",
      "votes": null
    },
    {
      "id": "971682",
      "postDate": "08/15/2020 19:55:30",
      "content": "<p>Great pictures! Is it correct : red line is the cases, when the prediction for current ground-truth bird is over some threshhold? What are you gonna do, if the other bird will be predicted? Thanks! </p>",
      "rawMarkdown": "Great pictures! Is it correct : red line is the cases, when the prediction for current ground-truth bird is over some threshhold? What are you gonna do, if the other bird will be predicted? Thanks!",
      "votes": null
    },
    {
      "id": "971686",
      "postDate": "08/15/2020 20:00:26",
      "content": "<p>I think, you can just apply methods like the ones in any other competition, not only with pictures/audio files. We can create table with three rows:</p>\n<ul>\n<li>true label</li>\n<li>predicted label</li>\n<li>predicted probobility</li>\n</ul>\n<p>And then explore cases when a true label doesn't equal a predicted label. For instance, you can find some birds hard to predict, or inapproprite threshhold for some cases. </p>",
      "rawMarkdown": "I think, you can just apply methods like the ones in any other competition, not only with pictures/audio files. We can create table with three rows:\n- true label\n- predicted label\n- predicted probobility\n\nAnd then explore cases when a true label doesn't equal a predicted label. For instance, you can find some birds hard to predict, or inapproprite threshhold for some cases.",
      "votes": null
    },
    {
      "id": "972088",
      "postDate": "08/16/2020 08:19:17",
      "content": "<p>Thanks, I have already done this, but I dont know how to do next. Like how I can impove my model to handle those wrong predictions through this table.<br>\nIn common competition, I can find the connection between true label and wrong prediction, but these bird data are really a mess for me.</p>",
      "rawMarkdown": "Thanks, I have already done this, but I dont know how to do next. Like how I can impove my model to handle those wrong predictions through this table.\nIn common competition, I can find the connection between true label and wrong prediction, but these bird data are really a mess for me.",
      "votes": null
    },
    {
      "id": "972122",
      "postDate": "08/16/2020 08:50:29",
      "content": "<p>there are only two main issues in this competition (and the solutions could be \"simple\")</p>\n<hr>\n<p>1.weak labels </p>\n<ul>\n<li>only clip label is given (or if you assume temporal label = clip label, then you have a noisy label problem)</li>\n<li>you should estimate how your current prediction accuracy of temporal label.</li>\n<li>the only way to improve temporal accuracy is simply strong label.</li>\n<li>think of way to create these strong label automatically (heuristics, ml methods like MIL, weak-supervision,  etc … or manual labels)</li>\n</ul>\n<hr>\n<p>2.adaption to noisy environment</p>\n<ul>\n<li>you should make a performance graph of your model : accuracy vs signal-noise-ratio (snr)</li>\n<li>to make a robust model against snr, the solution is to create noisy train samples.</li>\n</ul>\n<p>in short, if you have strong labels and noisy train samples, the challenge will be straight forward.</p>\n<hr>\n<p>during  \"badcase study\", identify the \"strong label\" needed and create them. Also, identify the \"noisy train sample\" needed and create them. measure performance before and after \"these creation\" and see if there is improvement</p>",
      "rawMarkdown": "there are only two main issues in this competition (and the solutions could be \"simple\")\n\n---\n\n1.weak labels \n- only clip label is given (or if you assume temporal label = clip label, then you have a noisy label problem)\n- you should estimate how your current prediction accuracy of temporal label.\n- the only way to improve temporal accuracy is simply strong label.\n- think of way to create these strong label automatically (heuristics, ml methods like MIL, weak-supervision,  etc ... or manual labels)\n\n---\n\n2.adaption to noisy environment\n- you should make a performance graph of your model : accuracy vs signal-noise-ratio (snr)\n- to make a robust model against snr, the solution is to create noisy train samples.\n\nin short, if you have strong labels and noisy train samples, the challenge will be straight forward.\n\n---\n\nduring  \"badcase study\", identify the \"strong label\" needed and create them. Also, identify the \"noisy train sample\" needed and create them. measure performance before and after \"these creation\" and see if there is improvement",
      "votes": null
    },
    {
      "id": "972534",
      "postDate": "08/16/2020 16:07:30",
      "content": "<p>the model is rained on sigmoid loss, i.e. multi-label. red is the probability of each label.</p>",
      "rawMarkdown": "the model is rained on sigmoid loss, i.e. multi-label. red is the probability of each label.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 971375,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "08/15/2020 13:17:32",
      "content": "<p>you can make figures like the below:</p>\n<ul>\n<li>red : frame-wise prediction</li>\n<li>yellow : ground truth</li>\n</ul>\n<p>you can study the local validation results or the sample test soundscape files or BirdCLEF2020 files</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F113660%2F682c77e9abd75f56c6ec60c6ec3bfffd%2FSelection_028.png?generation=1597497433484980&amp;alt=media\" alt=\"\"></p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F113660%2Fdbd09bbb2e6aadd76904dc7cb15d0d21%2FSelection_032.png?generation=1597497450806997&amp;alt=media\" alt=\"\"></p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F113660%2Ffbf767f7654e793fe504ea58b4e9c670%2FSelection_030.png?generation=1597497556763483&amp;alt=media\" alt=\"\"></p>",
      "votes": null,
      "replies": [
        {
          "id": 971591,
          "author_name": "karlyukang",
          "author_url": "",
          "post_date": "08/15/2020 17:39:18",
          "content": "<p>Thanks a lot, the figures look great! Could you share some codes to generate it?</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 971682,
          "author_name": "koza4ukdmitrij",
          "author_url": "",
          "post_date": "08/15/2020 19:55:30",
          "content": "<p>Great pictures! Is it correct : red line is the cases, when the prediction for current ground-truth bird is over some threshhold? What are you gonna do, if the other bird will be predicted? Thanks! </p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 972534,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "08/16/2020 16:07:30",
          "content": "<p>the model is rained on sigmoid loss, i.e. multi-label. red is the probability of each label.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 971686,
      "author_name": "koza4ukdmitrij",
      "author_url": "",
      "post_date": "08/15/2020 20:00:26",
      "content": "<p>I think, you can just apply methods like the ones in any other competition, not only with pictures/audio files. We can create table with three rows:</p>\n<ul>\n<li>true label</li>\n<li>predicted label</li>\n<li>predicted probobility</li>\n</ul>\n<p>And then explore cases when a true label doesn't equal a predicted label. For instance, you can find some birds hard to predict, or inapproprite threshhold for some cases. </p>",
      "votes": null,
      "replies": [
        {
          "id": 972088,
          "author_name": "karlyukang",
          "author_url": "",
          "post_date": "08/16/2020 08:19:17",
          "content": "<p>Thanks, I have already done this, but I dont know how to do next. Like how I can impove my model to handle those wrong predictions through this table.<br>\nIn common competition, I can find the connection between true label and wrong prediction, but these bird data are really a mess for me.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 972122,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "08/16/2020 08:50:29",
          "content": "<p>there are only two main issues in this competition (and the solutions could be \"simple\")</p>\n<hr>\n<p>1.weak labels </p>\n<ul>\n<li>only clip label is given (or if you assume temporal label = clip label, then you have a noisy label problem)</li>\n<li>you should estimate how your current prediction accuracy of temporal label.</li>\n<li>the only way to improve temporal accuracy is simply strong label.</li>\n<li>think of way to create these strong label automatically (heuristics, ml methods like MIL, weak-supervision,  etc … or manual labels)</li>\n</ul>\n<hr>\n<p>2.adaption to noisy environment</p>\n<ul>\n<li>you should make a performance graph of your model : accuracy vs signal-noise-ratio (snr)</li>\n<li>to make a robust model against snr, the solution is to create noisy train samples.</li>\n</ul>\n<p>in short, if you have strong labels and noisy train samples, the challenge will be straight forward.</p>\n<hr>\n<p>during  \"badcase study\", identify the \"strong label\" needed and create them. Also, identify the \"noisy train sample\" needed and create them. measure performance before and after \"these creation\" and see if there is improvement</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "971171": "I think badcase analysis is very important in ML. But in this competition, I have tried to see some samples that model classifies wrong and want to get some inspiration, I can not even distinguish those birds. \nSo how do you guys do case study in here?",
    "971375": "you can make figures like the below:\n- red : frame-wise prediction\n- yellow : ground truth\n\nyou can study the local validation results or the sample test soundscape files or BirdCLEF2020 files\n\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F113660%2F682c77e9abd75f56c6ec60c6ec3bfffd%2FSelection_028.png?generation=1597497433484980&alt=media)\n\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F113660%2Fdbd09bbb2e6aadd76904dc7cb15d0d21%2FSelection_032.png?generation=1597497450806997&alt=media)\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F113660%2Ffbf767f7654e793fe504ea58b4e9c670%2FSelection_030.png?generation=1597497556763483&alt=media)",
    "971591": "Thanks a lot, the figures look great! Could you share some codes to generate it?",
    "971682": "Great pictures! Is it correct : red line is the cases, when the prediction for current ground-truth bird is over some threshhold? What are you gonna do, if the other bird will be predicted? Thanks!",
    "971686": "I think, you can just apply methods like the ones in any other competition, not only with pictures/audio files. We can create table with three rows:\n- true label\n- predicted label\n- predicted probobility\n\nAnd then explore cases when a true label doesn't equal a predicted label. For instance, you can find some birds hard to predict, or inapproprite threshhold for some cases.",
    "972088": "Thanks, I have already done this, but I dont know how to do next. Like how I can impove my model to handle those wrong predictions through this table.\nIn common competition, I can find the connection between true label and wrong prediction, but these bird data are really a mess for me.",
    "972122": "there are only two main issues in this competition (and the solutions could be \"simple\")\n\n---\n\n1.weak labels \n- only clip label is given (or if you assume temporal label = clip label, then you have a noisy label problem)\n- you should estimate how your current prediction accuracy of temporal label.\n- the only way to improve temporal accuracy is simply strong label.\n- think of way to create these strong label automatically (heuristics, ml methods like MIL, weak-supervision,  etc ... or manual labels)\n\n---\n\n2.adaption to noisy environment\n- you should make a performance graph of your model : accuracy vs signal-noise-ratio (snr)\n- to make a robust model against snr, the solution is to create noisy train samples.\n\nin short, if you have strong labels and noisy train samples, the challenge will be straight forward.\n\n---\n\nduring  \"badcase study\", identify the \"strong label\" needed and create them. Also, identify the \"noisy train sample\" needed and create them. measure performance before and after \"these creation\" and see if there is improvement",
    "972534": "the model is rained on sigmoid loss, i.e. multi-label. red is the probability of each label."
  },
  "source": "meta"
}