{
  "id": 130054,
  "title": "Visualizations ?",
  "url": "/competitions/flower-classification-with-tpus/discussion/130054",
  "author_name": "Martin Görner",
  "post_date": "2020-02-11T22:08:20.023000",
  "votes": 8,
  "comment_count": 7,
  "views": 0,
  "content": "<p>Competitors, can you keep the visualizations on as you submit ? This is a good quality but highly imbalanced dataset with classes with 1000 images and others with 20. The confusion matrix really helps see if the little classes are getting picked up or not and the array of predicted flowers labels also shows where the model is failing.</p>",
  "messages": [
    {
      "id": 743209,
      "postDate": "2020-02-11T22:08:20.023Z",
      "content": "<p>Competitors, can you keep the visualizations on as you submit ? This is a good quality but highly imbalanced dataset with classes with 1000 images and others with 20. The confusion matrix really helps see if the little classes are getting picked up or not and the array of predicted flowers labels also shows where the model is failing.</p>",
      "rawMarkdown": "Competitors, can you keep the visualizations on as you submit ? This is a good quality but highly imbalanced dataset with classes with 1000 images and others with 20. The confusion matrix really helps see if the little classes are getting picked up or not and the array of predicted flowers labels also shows where the model is failing.",
      "votes": 8
    },
    {
      "id": 743296,
      "postDate": "2020-02-12T00:59:22.393Z",
      "content": "<p>This is what it looks like with a proper model. Thank you <a href=\"/msheriey\">@msheriey</a> for publishing <a href=\"https://www.kaggle.com/msheriey/flowers-on-tpu-ensemble-lr-schedule\">your notebook</a> AND getting the top spot in the competition.</p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4003597%2Fe65c135ffcbccf9fc63805ed4955fb56%2FScreen%20Shot%202020-02-11%20at%2016.58.46.png?generation=1581469147714997&amp;alt=media\" alt=\"confusion matrix\"></p>",
      "rawMarkdown": "This is what it looks like with a proper model. Thank you @msheriey for publishing [your notebook](https://www.kaggle.com/msheriey/flowers-on-tpu-ensemble-lr-schedule) AND getting the top spot in the competition.\n\n![confusion matrix](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4003597%2Fe65c135ffcbccf9fc63805ed4955fb56%2FScreen%20Shot%202020-02-11%20at%2016.58.46.png?generation=1581469147714997&amp;alt=media)\n",
      "votes": 3,
      "replies": [
        {
          "id": 743304,
          "postDate": "2020-02-12T01:12:22.700Z",
          "content": "<p>My thanks to you <a href=\"/mgornergoogle\">@mgornergoogle</a>, I just followed your tips.</p>\n\n<p>Soon to come will be implementing my own ideas. 😉 </p>",
          "rawMarkdown": "My thanks to you @mgornergoogle, I just followed your tips.\n\nSoon to come will be implementing my own ideas. 😉 "
        }
      ]
    },
    {
      "id": 759959,
      "postDate": "2020-02-29T16:55:49.380Z",
      "content": "<p>One thing that I found to work great is to plot both train and validation set matrices and split them into smaller pieces (because we have 104 classes it can be hard to look in details) <a href=\"https://www.kaggle.com/dimitreoliveira/flower-classification-with-tpus-eda-and-baseline#Confusion-matrix\">here is an example</a>, I've split each matrix into 3, the classification report also helps to see detailed information about each class.</p>",
      "rawMarkdown": "One thing that I found to work great is to plot both train and validation set matrices and split them into smaller pieces (because we have 104 classes it can be hard to look in details) [here is an example](https://www.kaggle.com/dimitreoliveira/flower-classification-with-tpus-eda-and-baseline#Confusion-matrix), I've split each matrix into 3, the classification report also helps to see detailed information about each class.",
      "votes": 1
    },
    {
      "id": 743211,
      "postDate": "2020-02-11T22:11:10.300Z",
      "content": "<p>Examples from the getting started notebook (so bad my eyes hurt 😬):\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4003597%2F8e4c4a79e8799ff444754f1bcbdc8f63%2FScreen%20Shot%202020-02-11%20at%2014.08.00.png?generation=1581468971236538&amp;alt=media\" alt=\"confusion matrix\">\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4003597%2F40d04cf8b212f7a2e24c03329000657b%2FScreen%20Shot%202020-02-11%20at%2014.08.12.png?generation=1581468992033758&amp;alt=media\" alt=\"\"></p>",
      "rawMarkdown": "Examples from the getting started notebook (so bad my eyes hurt 😬):\n![confusion matrix](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4003597%2F8e4c4a79e8799ff444754f1bcbdc8f63%2FScreen%20Shot%202020-02-11%20at%2014.08.00.png?generation=1581468971236538&amp;alt=media)\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4003597%2F40d04cf8b212f7a2e24c03329000657b%2FScreen%20Shot%202020-02-11%20at%2014.08.12.png?generation=1581468992033758&amp;alt=media)\n",
      "votes": 1,
      "replies": [
        {
          "id": 743213,
          "postDate": "2020-02-11T22:11:31.710Z",
          "content": "<p>Can you post better ones ?</p>",
          "rawMarkdown": "Can you post better ones ?",
          "votes": 2
        }
      ]
    },
    {
      "id": 743336,
      "postDate": "2020-02-12T01:56:49.970Z",
      "content": "<p>You can also normalize the confusion matrix with\n<code>cmat = (cmat.T / cmat.sum(axis=1)).T # normalized</code>\nThis is what a normalized CF looks like. Misclassifications are much more visible:\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4003597%2F3ef28b78e6068abc1c801602646528db%2FScreen%20Shot%202020-02-11%20at%2017.55.31.png?generation=1581472606688694&amp;alt=media\" alt=\"\"></p>",
      "rawMarkdown": "You can also normalize the confusion matrix with\n`cmat = (cmat.T / cmat.sum(axis=1)).T # normalized`\nThis is what a normalized CF looks like. Misclassifications are much more visible:\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4003597%2F3ef28b78e6068abc1c801602646528db%2FScreen%20Shot%202020-02-11%20at%2017.55.31.png?generation=1581472606688694&amp;alt=media)\n",
      "votes": 2
    },
    {
      "id": 744789,
      "postDate": "2020-02-13T06:23:01.547Z",
      "rawMarkdown": "",
      "isDeleted": true
    }
  ],
  "comments": [
    {
      "id": 743296,
      "author_name": "Martin Görner",
      "author_url": "",
      "post_date": "2020-02-12T00:59:22.393000",
      "content": "<p>This is what it looks like with a proper model. Thank you <a href=\"/msheriey\">@msheriey</a> for publishing <a href=\"https://www.kaggle.com/msheriey/flowers-on-tpu-ensemble-lr-schedule\">your notebook</a> AND getting the top spot in the competition.</p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4003597%2Fe65c135ffcbccf9fc63805ed4955fb56%2FScreen%20Shot%202020-02-11%20at%2016.58.46.png?generation=1581469147714997&amp;alt=media\" alt=\"confusion matrix\"></p>",
      "votes": 3,
      "replies": [
        {
          "id": 743304,
          "author_name": "Mourad",
          "author_url": "",
          "post_date": "2020-02-12T01:12:22.700000",
          "content": "<p>My thanks to you <a href=\"/mgornergoogle\">@mgornergoogle</a>, I just followed your tips.</p>\n\n<p>Soon to come will be implementing my own ideas. 😉 </p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 759959,
      "author_name": "DimitreOliveira",
      "author_url": "",
      "post_date": "2020-02-29T16:55:49.380000",
      "content": "<p>One thing that I found to work great is to plot both train and validation set matrices and split them into smaller pieces (because we have 104 classes it can be hard to look in details) <a href=\"https://www.kaggle.com/dimitreoliveira/flower-classification-with-tpus-eda-and-baseline#Confusion-matrix\">here is an example</a>, I've split each matrix into 3, the classification report also helps to see detailed information about each class.</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 743211,
      "author_name": "Martin Görner",
      "author_url": "",
      "post_date": "2020-02-11T22:11:10.300000",
      "content": "<p>Examples from the getting started notebook (so bad my eyes hurt 😬):\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4003597%2F8e4c4a79e8799ff444754f1bcbdc8f63%2FScreen%20Shot%202020-02-11%20at%2014.08.00.png?generation=1581468971236538&amp;alt=media\" alt=\"confusion matrix\">\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4003597%2F40d04cf8b212f7a2e24c03329000657b%2FScreen%20Shot%202020-02-11%20at%2014.08.12.png?generation=1581468992033758&amp;alt=media\" alt=\"\"></p>",
      "votes": 1,
      "replies": [
        {
          "id": 743213,
          "author_name": "Martin Görner",
          "author_url": "",
          "post_date": "2020-02-11T22:11:31.710000",
          "content": "<p>Can you post better ones ?</p>",
          "votes": 2,
          "replies": []
        }
      ]
    },
    {
      "id": 743336,
      "author_name": "Martin Görner",
      "author_url": "",
      "post_date": "2020-02-12T01:56:49.970000",
      "content": "<p>You can also normalize the confusion matrix with\n<code>cmat = (cmat.T / cmat.sum(axis=1)).T # normalized</code>\nThis is what a normalized CF looks like. Misclassifications are much more visible:\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4003597%2F3ef28b78e6068abc1c801602646528db%2FScreen%20Shot%202020-02-11%20at%2017.55.31.png?generation=1581472606688694&amp;alt=media\" alt=\"\"></p>",
      "votes": 2,
      "replies": []
    },
    {
      "id": 744789,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-02-13T06:23:01.547000",
      "content": "",
      "votes": 0,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "743209": "Competitors, can you keep the visualizations on as you submit ? This is a good quality but highly imbalanced dataset with classes with 1000 images and others with 20. The confusion matrix really helps see if the little classes are getting picked up or not and the array of predicted flowers labels also shows where the model is failing.",
    "743296": "This is what it looks like with a proper model. Thank you @msheriey for publishing [your notebook](https://www.kaggle.com/msheriey/flowers-on-tpu-ensemble-lr-schedule) AND getting the top spot in the competition.\n\n![confusion matrix](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4003597%2Fe65c135ffcbccf9fc63805ed4955fb56%2FScreen%20Shot%202020-02-11%20at%2016.58.46.png?generation=1581469147714997&amp;alt=media)\n",
    "759959": "One thing that I found to work great is to plot both train and validation set matrices and split them into smaller pieces (because we have 104 classes it can be hard to look in details) [here is an example](https://www.kaggle.com/dimitreoliveira/flower-classification-with-tpus-eda-and-baseline#Confusion-matrix), I've split each matrix into 3, the classification report also helps to see detailed information about each class.",
    "743211": "Examples from the getting started notebook (so bad my eyes hurt 😬):\n![confusion matrix](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4003597%2F8e4c4a79e8799ff444754f1bcbdc8f63%2FScreen%20Shot%202020-02-11%20at%2014.08.00.png?generation=1581468971236538&amp;alt=media)\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4003597%2F40d04cf8b212f7a2e24c03329000657b%2FScreen%20Shot%202020-02-11%20at%2014.08.12.png?generation=1581468992033758&amp;alt=media)\n",
    "743336": "You can also normalize the confusion matrix with\n`cmat = (cmat.T / cmat.sum(axis=1)).T # normalized`\nThis is what a normalized CF looks like. Misclassifications are much more visible:\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4003597%2F3ef28b78e6068abc1c801602646528db%2FScreen%20Shot%202020-02-11%20at%2017.55.31.png?generation=1581472606688694&amp;alt=media)\n",
    "744789": ""
  }
}