{
  "id": 97651,
  "title": "Difference about Type '3JHH' between train & test.",
  "url": "/competitions/champs-scalar-coupling/discussion/97651",
  "author_name": "",
  "post_date": "2019-06-28T07:31:36.696844100Z",
  "votes": 1,
  "comment_count": 2,
  "views": 0,
  "content": "<p>In my EDA, I grouped 8 different types, and saw the unique atoms for each type. And I got the following information.\nFor train:\ntrain_1JHC atom unique: 29\ntrain_1JHN atom unique: 24\ntrain_2JHC atom unique: 29\ntrain_2JHH atom unique: 28\ntrain_2JHN atom unique: 26\ntrain_3JHC atom unique: 29\ntrain_3JHH atom unique: 29\ntrain_3JHN atom unique: 26\nFor test:\ntest_1JHC atom unique: 29\ntest_1JHN atom unique: 24\ntest_2JHC atom unique: 29\ntest_2JHH atom unique: 28\ntest_2JHN atom unique: 26\ntest_3JHC atom unique: 29\ntest_3JHH atom unique: 28\ntest_3JHN atom unique: 26</p>\n\n<p>It shows that almost all types have the same amount of unique values in train and test set, except 3JHH, which really made me confused. Why?\nDoes anyone have the same confusion like me? Or could anybody give me some advise?\nBecause I think, for example, if atom_index=10 only occurs in training set, then I will regard it as noise and delete all atom_index=10 in training set.</p>",
  "messages": [
    {
      "id": "563356",
      "postDate": "06/28/2019 07:31:36",
      "content": "<p>In my EDA, I grouped 8 different types, and saw the unique atoms for each type. And I got the following information.\nFor train:\ntrain_1JHC atom unique: 29\ntrain_1JHN atom unique: 24\ntrain_2JHC atom unique: 29\ntrain_2JHH atom unique: 28\ntrain_2JHN atom unique: 26\ntrain_3JHC atom unique: 29\ntrain_3JHH atom unique: 29\ntrain_3JHN atom unique: 26\nFor test:\ntest_1JHC atom unique: 29\ntest_1JHN atom unique: 24\ntest_2JHC atom unique: 29\ntest_2JHH atom unique: 28\ntest_2JHN atom unique: 26\ntest_3JHC atom unique: 29\ntest_3JHH atom unique: 28\ntest_3JHN atom unique: 26</p>\n\n<p>It shows that almost all types have the same amount of unique values in train and test set, except 3JHH, which really made me confused. Why?\nDoes anyone have the same confusion like me? Or could anybody give me some advise?\nBecause I think, for example, if atom_index=10 only occurs in training set, then I will regard it as noise and delete all atom_index=10 in training set.</p>",
      "rawMarkdown": "In my EDA, I grouped 8 different types, and saw the unique atoms for each type. And I got the following information.\nFor train:\ntrain_1JHC atom unique: 29\ntrain_1JHN atom unique: 24\ntrain_2JHC atom unique: 29\ntrain_2JHH atom unique: 28\ntrain_2JHN atom unique: 26\ntrain_3JHC atom unique: 29\ntrain_3JHH atom unique: 29\ntrain_3JHN atom unique: 26\nFor test:\ntest_1JHC atom unique: 29\ntest_1JHN atom unique: 24\ntest_2JHC atom unique: 29\ntest_2JHH atom unique: 28\ntest_2JHN atom unique: 26\ntest_3JHC atom unique: 29\ntest_3JHH atom unique: 28\ntest_3JHN atom unique: 26\n\nIt shows that almost all types have the same amount of unique values in train and test set, except 3JHH, which really made me confused. Why?\nDoes anyone have the same confusion like me? Or could anybody give me some advise?\nBecause I think, for example, if atom_index=10 only occurs in training set, then I will regard it as noise and delete all atom_index=10 in training set.",
      "votes": null
    },
    {
      "id": "563562",
      "postDate": "06/28/2019 12:32:03",
      "content": "<p>Please, can you explain how do you compute these \"atom unique\" numbers.</p>\n\n<p>Anyway your model must predict the <em>J-coupling constant</em> for a pair of atoms of an arbitrary molecule independent of the size, i.e., considering only the structure and the interactions of the atoms (of course the size of the molecule can be a feature modeling the number of these interactions). As <a href=\"/artgor\">@artgor</a> already cross-validated, training with random spliting (shuffle) can be even better that training with group spliting by molecule or other stratification. See <a href=\"https://www.kaggle.com/artgor/validation-feature-selection-interpretation-etc\">https://www.kaggle.com/artgor/validation-feature-selection-interpretation-etc</a></p>\n\n<p>Considering this, if you remove from training set the rows with <code>[(train.atom_index_0 == 10) | (train.atom_index_1 == 10)]</code> it must not necessarily improve or get worst.</p>\n\n<p>I think that you are trying to assess the imbalance and exclude from training set the couplings that are rare. If this is the case, you have to consider the target/dependent variable. Mainly <code>scalar_coupling_constant</code> but also additional data and <code>scalar_coupling_contributions</code>.</p>",
      "rawMarkdown": "Please, can you explain how do you compute these \"atom unique\" numbers.\n\nAnyway your model must predict the _J-coupling constant_ for a pair of atoms of an arbitrary molecule independent of the size, i.e., considering only the structure and the interactions of the atoms (of course the size of the molecule can be a feature modeling the number of these interactions). As @artgor already cross-validated, training with random spliting (shuffle) can be even better that training with group spliting by molecule or other stratification. See https://www.kaggle.com/artgor/validation-feature-selection-interpretation-etc\n\nConsidering this, if you remove from training set the rows with `[(train.atom_index_0 == 10) | (train.atom_index_1 == 10)]` it must not necessarily improve or get worst.\n\nI think that you are trying to assess the imbalance and exclude from training set the couplings that are rare. If this is the case, you have to consider the target/dependent variable. Mainly `scalar_coupling_constant` but also additional data and `scalar_coupling_contributions`.",
      "votes": null
    },
    {
      "id": "565581",
      "postDate": "07/01/2019 06:20:42",
      "content": "<p>Thanks for your exhausted reply, yeah I am analysis the imbalance data between train and test csv. In order to make my question more clear, I have already make my EDA public. Here is the link.<a href=\"https://www.kaggle.com/leonshangguan/molecule-eda-including-3d-public-version?scriptVersionId=16556848\">Molecule-EDA</a> I will appreciate it if you can help me or give me any advice.</p>",
      "rawMarkdown": "Thanks for your exhausted reply, yeah I am analysis the imbalance data between train and test csv. In order to make my question more clear, I have already make my EDA public. Here is the link.[Molecule-EDA](https://www.kaggle.com/leonshangguan/molecule-eda-including-3d-public-version?scriptVersionId=16556848) I will appreciate it if you can help me or give me any advice.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 563562,
      "author_name": "alexpcli",
      "author_url": "",
      "post_date": "06/28/2019 12:32:03",
      "content": "<p>Please, can you explain how do you compute these \"atom unique\" numbers.</p>\n\n<p>Anyway your model must predict the <em>J-coupling constant</em> for a pair of atoms of an arbitrary molecule independent of the size, i.e., considering only the structure and the interactions of the atoms (of course the size of the molecule can be a feature modeling the number of these interactions). As <a href=\"/artgor\">@artgor</a> already cross-validated, training with random spliting (shuffle) can be even better that training with group spliting by molecule or other stratification. See <a href=\"https://www.kaggle.com/artgor/validation-feature-selection-interpretation-etc\">https://www.kaggle.com/artgor/validation-feature-selection-interpretation-etc</a></p>\n\n<p>Considering this, if you remove from training set the rows with <code>[(train.atom_index_0 == 10) | (train.atom_index_1 == 10)]</code> it must not necessarily improve or get worst.</p>\n\n<p>I think that you are trying to assess the imbalance and exclude from training set the couplings that are rare. If this is the case, you have to consider the target/dependent variable. Mainly <code>scalar_coupling_constant</code> but also additional data and <code>scalar_coupling_contributions</code>.</p>",
      "votes": null,
      "replies": [
        {
          "id": 565581,
          "author_name": "leonshangguan",
          "author_url": "",
          "post_date": "07/01/2019 06:20:42",
          "content": "<p>Thanks for your exhausted reply, yeah I am analysis the imbalance data between train and test csv. In order to make my question more clear, I have already make my EDA public. Here is the link.<a href=\"https://www.kaggle.com/leonshangguan/molecule-eda-including-3d-public-version?scriptVersionId=16556848\">Molecule-EDA</a> I will appreciate it if you can help me or give me any advice.</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "563356": "In my EDA, I grouped 8 different types, and saw the unique atoms for each type. And I got the following information.\nFor train:\ntrain_1JHC atom unique: 29\ntrain_1JHN atom unique: 24\ntrain_2JHC atom unique: 29\ntrain_2JHH atom unique: 28\ntrain_2JHN atom unique: 26\ntrain_3JHC atom unique: 29\ntrain_3JHH atom unique: 29\ntrain_3JHN atom unique: 26\nFor test:\ntest_1JHC atom unique: 29\ntest_1JHN atom unique: 24\ntest_2JHC atom unique: 29\ntest_2JHH atom unique: 28\ntest_2JHN atom unique: 26\ntest_3JHC atom unique: 29\ntest_3JHH atom unique: 28\ntest_3JHN atom unique: 26\n\nIt shows that almost all types have the same amount of unique values in train and test set, except 3JHH, which really made me confused. Why?\nDoes anyone have the same confusion like me? Or could anybody give me some advise?\nBecause I think, for example, if atom_index=10 only occurs in training set, then I will regard it as noise and delete all atom_index=10 in training set.",
    "563562": "Please, can you explain how do you compute these \"atom unique\" numbers.\n\nAnyway your model must predict the _J-coupling constant_ for a pair of atoms of an arbitrary molecule independent of the size, i.e., considering only the structure and the interactions of the atoms (of course the size of the molecule can be a feature modeling the number of these interactions). As @artgor already cross-validated, training with random spliting (shuffle) can be even better that training with group spliting by molecule or other stratification. See https://www.kaggle.com/artgor/validation-feature-selection-interpretation-etc\n\nConsidering this, if you remove from training set the rows with `[(train.atom_index_0 == 10) | (train.atom_index_1 == 10)]` it must not necessarily improve or get worst.\n\nI think that you are trying to assess the imbalance and exclude from training set the couplings that are rare. If this is the case, you have to consider the target/dependent variable. Mainly `scalar_coupling_constant` but also additional data and `scalar_coupling_contributions`.",
    "565581": "Thanks for your exhausted reply, yeah I am analysis the imbalance data between train and test csv. In order to make my question more clear, I have already make my EDA public. Here is the link.[Molecule-EDA](https://www.kaggle.com/leonshangguan/molecule-eda-including-3d-public-version?scriptVersionId=16556848) I will appreciate it if you can help me or give me any advice."
  },
  "source": "meta"
}