{
  "id": 411024,
  "title": "NaN's in the evaluation part",
  "url": "/competitions/asl-fingerspelling/discussion/411024",
  "author_name": "Alem Memic",
  "post_date": "2023-05-17T11:19:13.400000",
  "votes": 0,
  "comment_count": 4,
  "views": 0,
  "content": "<p>Hello everyone,</p>\n<p>I would like to ask you something. How are NaN's handled during evaluation? Is it like that they put them to 0's, or they just leave it as is? I tried to understand that from evaluation part, but I didn't see that part. How will that be handled? What will be done with NaN's?</p>",
  "messages": [
    {
      "id": 2263189,
      "postDate": "2023-05-17T12:02:48.153Z",
      "content": "<p>As <a href=\"https://www.kaggle.com/mdecoster\" target=\"_blank\">@mdecoster</a> mentioned, you should deal with NaNs inside your tfmodel. One of the easiest ways - is to replace nan's with zero. (I would recommend replacing it with zeros after the normalization process). More advanced ways are to impute missing (NaNs) values. You may replace it with the mean values of certain joints. In the previous competition, I spent a lot of time on linear interpolation of NaNs values. In fact, it improves my CV by up to 1.5% accuracy, but unfortunately, I was not able to convert such a preprocessing to tflite model.<br>\nAs an alternative approach, you may filter out all the frames containing NaN. It also works well.</p>",
      "rawMarkdown": "As @mdecoster mentioned, you should deal with NaNs inside your tfmodel. One of the easiest ways - is to replace nan's with zero. (I would recommend replacing it with zeros after the normalization process). More advanced ways are to impute missing (NaNs) values. You may replace it with the mean values of certain joints. In the previous competition, I spent a lot of time on linear interpolation of NaNs values. In fact, it improves my CV by up to 1.5% accuracy, but unfortunately, I was not able to convert such a preprocessing to tflite model.\nAs an alternative approach, you may filter out all the frames containing NaN. It also works well.",
      "replies": [
        {
          "id": 2263430,
          "postDate": "2023-05-17T15:26:18.613Z",
          "content": "<p>Thank you very much for detailed information. That's great if they don't do anything in that direction.</p>",
          "rawMarkdown": "Thank you very much for detailed information. That's great if they don't do anything in that direction."
        }
      ]
    },
    {
      "id": 2263159,
      "postDate": "2023-05-17T11:24:41.173Z",
      "content": "<p>Hi Alem, you will need to process the NaN values yourself in your TFLite model.</p>",
      "rawMarkdown": "Hi Alem, you will need to process the NaN values yourself in your TFLite model.",
      "replies": [
        {
          "id": 2263433,
          "postDate": "2023-05-17T15:26:45.010Z",
          "content": "<p>Thank you very much. That sounds great.</p>",
          "rawMarkdown": "Thank you very much. That sounds great."
        }
      ]
    },
    {
      "id": 2263155,
      "postDate": "2023-05-17T11:19:13.400Z",
      "content": "<p>Hello everyone,</p>\n<p>I would like to ask you something. How are NaN's handled during evaluation? Is it like that they put them to 0's, or they just leave it as is? I tried to understand that from evaluation part, but I didn't see that part. How will that be handled? What will be done with NaN's?</p>",
      "rawMarkdown": "Hello everyone,\n\nI would like to ask you something. How are NaN's handled during evaluation? Is it like that they put them to 0's, or they just leave it as is? I tried to understand that from evaluation part, but I didn't see that part. How will that be handled? What will be done with NaN's?"
    }
  ],
  "comments": [
    {
      "id": 2263189,
      "author_name": "Mykola",
      "author_url": "",
      "post_date": "2023-05-17T12:02:48.153000",
      "content": "<p>As <a href=\"https://www.kaggle.com/mdecoster\" target=\"_blank\">@mdecoster</a> mentioned, you should deal with NaNs inside your tfmodel. One of the easiest ways - is to replace nan's with zero. (I would recommend replacing it with zeros after the normalization process). More advanced ways are to impute missing (NaNs) values. You may replace it with the mean values of certain joints. In the previous competition, I spent a lot of time on linear interpolation of NaNs values. In fact, it improves my CV by up to 1.5% accuracy, but unfortunately, I was not able to convert such a preprocessing to tflite model.<br>\nAs an alternative approach, you may filter out all the frames containing NaN. It also works well.</p>",
      "votes": 0,
      "replies": [
        {
          "id": 2263430,
          "author_name": "Alem Memic",
          "author_url": "",
          "post_date": "2023-05-17T15:26:18.613000",
          "content": "<p>Thank you very much for detailed information. That's great if they don't do anything in that direction.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 2263159,
      "author_name": "Mathieu De Coster",
      "author_url": "",
      "post_date": "2023-05-17T11:24:41.173000",
      "content": "<p>Hi Alem, you will need to process the NaN values yourself in your TFLite model.</p>",
      "votes": 0,
      "replies": [
        {
          "id": 2263433,
          "author_name": "Alem Memic",
          "author_url": "",
          "post_date": "2023-05-17T15:26:45.010000",
          "content": "<p>Thank you very much. That sounds great.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "2263189": "As @mdecoster mentioned, you should deal with NaNs inside your tfmodel. One of the easiest ways - is to replace nan's with zero. (I would recommend replacing it with zeros after the normalization process). More advanced ways are to impute missing (NaNs) values. You may replace it with the mean values of certain joints. In the previous competition, I spent a lot of time on linear interpolation of NaNs values. In fact, it improves my CV by up to 1.5% accuracy, but unfortunately, I was not able to convert such a preprocessing to tflite model.\nAs an alternative approach, you may filter out all the frames containing NaN. It also works well.",
    "2263159": "Hi Alem, you will need to process the NaN values yourself in your TFLite model.",
    "2263155": "Hello everyone,\n\nI would like to ask you something. How are NaN's handled during evaluation? Is it like that they put them to 0's, or they just leave it as is? I tried to understand that from evaluation part, but I didn't see that part. How will that be handled? What will be done with NaN's?"
  }
}