{
  "id": 94418,
  "title": "Feature generation based on molecules",
  "url": "/competitions/champs-scalar-coupling/discussion/94418",
  "author_name": "Andrey Lukyanenko",
  "post_date": "2019-06-04T11:33:02.047000",
  "votes": 60,
  "comment_count": 13,
  "views": 0,
  "content": "<p>I have published my first kernel in this competition on the day it started and it had quite a good score. But quite soon we could see scores lower than 0. For some time I had no idea how was it possible :)</p>\n\n<p>Today I realized that the problem was with feature generation. I have made a couple of features showing statistics for types of the whole train/test set. These features are okay, but hardly useful!</p>\n\n<p>And now I try a better approach: creating features based on molecules.</p>\n\n<p>I have little knowledge on physics and chemistry (didn't use them since school), so I use a brute force approach and create features like <code>molecule_type_dist_min</code> - minimum distance per type in molecules.</p>\n\n<p>Here is the link to my <a href=\"https://www.kaggle.com/artgor/brute-force-feature-engineering\">kernel</a> which gives <code>-0.210</code> on public leaderboard.\nThe code for generating all features is provided but isn't used because it creates 450+ features, and thus will exceed kernel memory limit. Instead I have generated all the features locally, run a fast feature selection and created ~50 top features in my kernel.</p>\n\n<p>Of course dumbly generating hundreds of features isn't smart. But I hope that my approach will inspire other people to do better things :)</p>",
  "messages": [
    {
      "id": 543213,
      "postDate": "2019-06-04T11:33:02.047Z",
      "content": "<p>I have published my first kernel in this competition on the day it started and it had quite a good score. But quite soon we could see scores lower than 0. For some time I had no idea how was it possible :)</p>\n\n<p>Today I realized that the problem was with feature generation. I have made a couple of features showing statistics for types of the whole train/test set. These features are okay, but hardly useful!</p>\n\n<p>And now I try a better approach: creating features based on molecules.</p>\n\n<p>I have little knowledge on physics and chemistry (didn't use them since school), so I use a brute force approach and create features like <code>molecule_type_dist_min</code> - minimum distance per type in molecules.</p>\n\n<p>Here is the link to my <a href=\"https://www.kaggle.com/artgor/brute-force-feature-engineering\">kernel</a> which gives <code>-0.210</code> on public leaderboard.\nThe code for generating all features is provided but isn't used because it creates 450+ features, and thus will exceed kernel memory limit. Instead I have generated all the features locally, run a fast feature selection and created ~50 top features in my kernel.</p>\n\n<p>Of course dumbly generating hundreds of features isn't smart. But I hope that my approach will inspire other people to do better things :)</p>",
      "rawMarkdown": "I have published my first kernel in this competition on the day it started and it had quite a good score. But quite soon we could see scores lower than 0. For some time I had no idea how was it possible :)\n\nToday I realized that the problem was with feature generation. I have made a couple of features showing statistics for types of the whole train/test set. These features are okay, but hardly useful!\n\nAnd now I try a better approach: creating features based on molecules.\n\nI have little knowledge on physics and chemistry (didn't use them since school), so I use a brute force approach and create features like `molecule_type_dist_min` - minimum distance per type in molecules.\n\nHere is the link to my [kernel](https://www.kaggle.com/artgor/brute-force-feature-engineering) which gives `-0.210` on public leaderboard.\nThe code for generating all features is provided but isn't used because it creates 450+ features, and thus will exceed kernel memory limit. Instead I have generated all the features locally, run a fast feature selection and created ~50 top features in my kernel.\n\nOf course dumbly generating hundreds of features isn't smart. But I hope that my approach will inspire other people to do better things :)",
      "votes": 59
    },
    {
      "id": 570547,
      "postDate": "2019-07-08T12:44:05.170Z",
      "content": "<p>great!</p>",
      "rawMarkdown": "great!",
      "votes": 3
    },
    {
      "id": 584003,
      "postDate": "2019-07-25T09:46:55.740Z",
      "content": "<p>Great</p>",
      "rawMarkdown": "Great",
      "votes": 1
    },
    {
      "id": 573082,
      "postDate": "2019-07-11T18:56:18.800Z",
      "content": "<p>Great Kernel!</p>",
      "rawMarkdown": "Great Kernel!",
      "votes": 1
    },
    {
      "id": 566619,
      "postDate": "2019-07-02T11:30:05.950Z",
      "content": "<p>Hi, thanks for sharing .Which technique you used for fast feature selection?</p>",
      "rawMarkdown": "Hi, thanks for sharing .Which technique you used for fast feature selection?",
      "votes": 1,
      "replies": [
        {
          "id": 566633,
          "postDate": "2019-07-02T11:46:45.610Z",
          "content": "<p>I used lgbm feature importance and took top-50 features.</p>",
          "rawMarkdown": "I used lgbm feature importance and took top-50 features."
        }
      ]
    },
    {
      "id": 544375,
      "postDate": "2019-06-05T12:56:09.340Z",
      "content": "<p>Awesome stuff! Very insightful. </p>",
      "rawMarkdown": "Awesome stuff! Very insightful. ",
      "votes": 1
    },
    {
      "id": 543412,
      "postDate": "2019-06-04T14:15:08.770Z",
      "content": "<p>Very good Kernel. I'm learning a lot with it. Thanks for sharing</p>",
      "rawMarkdown": "Very good Kernel. I'm learning a lot with it. Thanks for sharing",
      "votes": 1
    },
    {
      "id": 544189,
      "postDate": "2019-06-05T08:50:29.610Z",
      "content": "<p>You are the TRUE grand master!</p>",
      "rawMarkdown": "You are the TRUE grand master!",
      "votes": 2
    },
    {
      "id": 546839,
      "postDate": "2019-06-07T00:15:14.857Z",
      "rawMarkdown": "",
      "votes": 2,
      "isDeleted": true
    },
    {
      "id": 546831,
      "postDate": "2019-06-07T00:05:01.870Z",
      "rawMarkdown": "",
      "votes": 2,
      "isDeleted": true
    },
    {
      "id": 565726,
      "postDate": "2019-07-01T10:08:56.487Z",
      "content": "<p>Thanks for your great kernel!</p>",
      "rawMarkdown": "Thanks for your great kernel!",
      "votes": 1
    },
    {
      "id": 545932,
      "postDate": "2019-06-06T03:58:21.207Z",
      "content": "<p>very helpful. Thanks for sharing!</p>",
      "rawMarkdown": "very helpful. Thanks for sharing!",
      "votes": 1
    },
    {
      "id": 550676,
      "postDate": "2019-06-11T22:54:58.100Z",
      "content": "<p>Thanks for sharing!</p>",
      "rawMarkdown": "Thanks for sharing!",
      "votes": 1,
      "isDeleted": true
    }
  ],
  "comments": [
    {
      "id": 570547,
      "author_name": "Krishna Katyal",
      "author_url": "",
      "post_date": "2019-07-08T12:44:05.170000",
      "content": "<p>great!</p>",
      "votes": 3,
      "replies": []
    },
    {
      "id": 584003,
      "author_name": "Data Saiyantist",
      "author_url": "",
      "post_date": "2019-07-25T09:46:55.740000",
      "content": "<p>Great</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 573082,
      "author_name": "Adam Lewis",
      "author_url": "",
      "post_date": "2019-07-11T18:56:18.800000",
      "content": "<p>Great Kernel!</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 566619,
      "author_name": "Reverse Flash",
      "author_url": "",
      "post_date": "2019-07-02T11:30:05.950000",
      "content": "<p>Hi, thanks for sharing .Which technique you used for fast feature selection?</p>",
      "votes": 1,
      "replies": [
        {
          "id": 566633,
          "author_name": "Andrey Lukyanenko",
          "author_url": "",
          "post_date": "2019-07-02T11:46:45.610000",
          "content": "<p>I used lgbm feature importance and took top-50 features.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 544375,
      "author_name": "9ofalltrades",
      "author_url": "",
      "post_date": "2019-06-05T12:56:09.340000",
      "content": "<p>Awesome stuff! Very insightful. </p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 543412,
      "author_name": "Adriano Avelar",
      "author_url": "",
      "post_date": "2019-06-04T14:15:08.770000",
      "content": "<p>Very good Kernel. I'm learning a lot with it. Thanks for sharing</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 544189,
      "author_name": "Chanran Kim",
      "author_url": "",
      "post_date": "2019-06-05T08:50:29.610000",
      "content": "<p>You are the TRUE grand master!</p>",
      "votes": 2,
      "replies": []
    },
    {
      "id": 546839,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-06-07T00:15:14.857000",
      "content": "",
      "votes": 2,
      "replies": []
    },
    {
      "id": 546831,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-06-07T00:05:01.870000",
      "content": "",
      "votes": 2,
      "replies": []
    },
    {
      "id": 565726,
      "author_name": "Emin Ozturk",
      "author_url": "",
      "post_date": "2019-07-01T10:08:56.487000",
      "content": "<p>Thanks for your great kernel!</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 545932,
      "author_name": "Xin Zhao",
      "author_url": "",
      "post_date": "2019-06-06T03:58:21.207000",
      "content": "<p>very helpful. Thanks for sharing!</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 550676,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-06-11T22:54:58.100000",
      "content": "<p>Thanks for sharing!</p>",
      "votes": 1,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "543213": "I have published my first kernel in this competition on the day it started and it had quite a good score. But quite soon we could see scores lower than 0. For some time I had no idea how was it possible :)\n\nToday I realized that the problem was with feature generation. I have made a couple of features showing statistics for types of the whole train/test set. These features are okay, but hardly useful!\n\nAnd now I try a better approach: creating features based on molecules.\n\nI have little knowledge on physics and chemistry (didn't use them since school), so I use a brute force approach and create features like `molecule_type_dist_min` - minimum distance per type in molecules.\n\nHere is the link to my [kernel](https://www.kaggle.com/artgor/brute-force-feature-engineering) which gives `-0.210` on public leaderboard.\nThe code for generating all features is provided but isn't used because it creates 450+ features, and thus will exceed kernel memory limit. Instead I have generated all the features locally, run a fast feature selection and created ~50 top features in my kernel.\n\nOf course dumbly generating hundreds of features isn't smart. But I hope that my approach will inspire other people to do better things :)",
    "570547": "great!",
    "584003": "Great",
    "573082": "Great Kernel!",
    "566619": "Hi, thanks for sharing .Which technique you used for fast feature selection?",
    "544375": "Awesome stuff! Very insightful. ",
    "543412": "Very good Kernel. I'm learning a lot with it. Thanks for sharing",
    "544189": "You are the TRUE grand master!",
    "546839": "",
    "546831": "",
    "565726": "Thanks for your great kernel!",
    "545932": "very helpful. Thanks for sharing!",
    "550676": "Thanks for sharing!"
  }
}