{
  "id": 74853,
  "title": "Always take notes when feature engineering",
  "url": "/competitions/elo-merchant-category-recommendation/discussion/74853",
  "author_name": "",
  "post_date": "2018-12-16T15:48:47.105691Z",
  "votes": 7,
  "comment_count": 10,
  "views": 0,
  "content": "<p>It happened to me in almost all competitions I participated that I was not able to reconstruct a model, a set of features that produced my best score, just because I did not take notes.\nI try to improve on this but still happens to me when brainstorming on  new features.\nHow do you keep track on your best set of features?</p>",
  "messages": [
    {
      "id": "439897",
      "postDate": "12/16/2018 15:48:47",
      "content": "<p>It happened to me in almost all competitions I participated that I was not able to reconstruct a model, a set of features that produced my best score, just because I did not take notes.\nI try to improve on this but still happens to me when brainstorming on  new features.\nHow do you keep track on your best set of features?</p>",
      "rawMarkdown": "It happened to me in almost all competitions I participated that I was not able to reconstruct a model, a set of features that produced my best score, just because I did not take notes.\nI try to improve on this but still happens to me when brainstorming on  new features.\nHow do you keep track on your best set of features?",
      "votes": null
    },
    {
      "id": "440103",
      "postDate": "12/17/2018 03:32:31",
      "content": "<p>Are you using Kaggle kernels? It keeps all your versions with logs, so how could any feature be lost?</p>",
      "rawMarkdown": "Are you using Kaggle kernels? It keeps all your versions with logs, so how could any feature be lost?",
      "votes": null
    },
    {
      "id": "440198",
      "postDate": "12/17/2018 07:48:32",
      "content": "<p>No, I develop on my local machine with Jupyter</p>",
      "rawMarkdown": "No, I develop on my local machine with Jupyter",
      "votes": null
    },
    {
      "id": "440247",
      "postDate": "12/17/2018 09:34:16",
      "content": "<p>You could try to use some tool to organize your ML experiment, something like MLFlow</p>",
      "rawMarkdown": "You could try to use some tool to organize your ML experiment, something like MLFlow",
      "votes": null
    },
    {
      "id": "440295",
      "postDate": "12/17/2018 11:01:53",
      "content": "<p>Thanks, I will have a look!</p>",
      "rawMarkdown": "Thanks, I will have a look!",
      "votes": null
    },
    {
      "id": "440857",
      "postDate": "12/18/2018 03:08:29",
      "content": "<p>I also like going old-school sometimes. Physically writing something down really does aid retention for me. I have been looking to get into something like MLFlow for awhile though. </p>",
      "rawMarkdown": "I also like going old-school sometimes. Physically writing something down really does aid retention for me. I have been looking to get into something like MLFlow for awhile though.",
      "votes": null
    },
    {
      "id": "461309",
      "postDate": "01/25/2019 18:32:45",
      "content": "<p>My way of doing is that whenever u run through a complete modeling cycle, keep the version and result as notebook and make that read-only. Then when you change another thing (not just new features), you create another version of notebook. That way you can keep track of what you did before and use them for ease of reference afterwards.</p>",
      "rawMarkdown": "My way of doing is that whenever u run through a complete modeling cycle, keep the version and result as notebook and make that read-only. Then when you change another thing (not just new features), you create another version of notebook. That way you can keep track of what you did before and use them for ease of reference afterwards.",
      "votes": null
    },
    {
      "id": "461492",
      "postDate": "01/26/2019 07:15:18",
      "content": "<p>Good tip making it read only. I frequently fall in my own trap getting lost around the many notebook versions. Making them readonly may help indeed.</p>",
      "rawMarkdown": "Good tip making it read only. I frequently fall in my own trap getting lost around the many notebook versions. Making them readonly may help indeed.",
      "votes": null
    },
    {
      "id": "461502",
      "postDate": "01/26/2019 07:58:25",
      "content": "<p>For small changes, I'll often just make my notes in my script directly, duplicate a section of code, comment out the original with a note of its performance and work on the new version. For bigger changes, I'll create a new script in the project, copy and paste the code over and work in that. I also use git for version control, so I've got all the change history there.</p>",
      "rawMarkdown": "For small changes, I'll often just make my notes in my script directly, duplicate a section of code, comment out the original with a note of its performance and work on the new version. For bigger changes, I'll create a new script in the project, copy and paste the code over and work in that. I also use git for version control, so I've got all the change history there.",
      "votes": null
    },
    {
      "id": "462568",
      "postDate": "01/28/2019 14:05:24",
      "content": "<p>Dropbox offers version history as well. Very useful indeed.</p>",
      "rawMarkdown": "Dropbox offers version history as well. Very useful indeed.",
      "votes": null
    },
    {
      "id": "468195",
      "postDate": "02/08/2019 13:16:43",
      "content": "<p>Out of curiosity, why do you go local instead of the built-in functionalities?</p>",
      "rawMarkdown": "Out of curiosity, why do you go local instead of the built-in functionalities?",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 440103,
      "author_name": "lumaxy",
      "author_url": "",
      "post_date": "12/17/2018 03:32:31",
      "content": "<p>Are you using Kaggle kernels? It keeps all your versions with logs, so how could any feature be lost?</p>",
      "votes": null,
      "replies": [
        {
          "id": 440198,
          "author_name": "mrdanibudapest",
          "author_url": "",
          "post_date": "12/17/2018 07:48:32",
          "content": "<p>No, I develop on my local machine with Jupyter</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 440247,
          "author_name": "lumaxy",
          "author_url": "",
          "post_date": "12/17/2018 09:34:16",
          "content": "<p>You could try to use some tool to organize your ML experiment, something like MLFlow</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 440295,
          "author_name": "mrdanibudapest",
          "author_url": "",
          "post_date": "12/17/2018 11:01:53",
          "content": "<p>Thanks, I will have a look!</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 468195,
          "author_name": "lowecoryr",
          "author_url": "",
          "post_date": "02/08/2019 13:16:43",
          "content": "<p>Out of curiosity, why do you go local instead of the built-in functionalities?</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 440857,
      "author_name": "delayedkarma",
      "author_url": "",
      "post_date": "12/18/2018 03:08:29",
      "content": "<p>I also like going old-school sometimes. Physically writing something down really does aid retention for me. I have been looking to get into something like MLFlow for awhile though. </p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 461309,
      "author_name": "pukkinming",
      "author_url": "",
      "post_date": "01/25/2019 18:32:45",
      "content": "<p>My way of doing is that whenever u run through a complete modeling cycle, keep the version and result as notebook and make that read-only. Then when you change another thing (not just new features), you create another version of notebook. That way you can keep track of what you did before and use them for ease of reference afterwards.</p>",
      "votes": null,
      "replies": [
        {
          "id": 461492,
          "author_name": "mrdanibudapest",
          "author_url": "",
          "post_date": "01/26/2019 07:15:18",
          "content": "<p>Good tip making it read only. I frequently fall in my own trap getting lost around the many notebook versions. Making them readonly may help indeed.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 461502,
      "author_name": "chrisbow",
      "author_url": "",
      "post_date": "01/26/2019 07:58:25",
      "content": "<p>For small changes, I'll often just make my notes in my script directly, duplicate a section of code, comment out the original with a note of its performance and work on the new version. For bigger changes, I'll create a new script in the project, copy and paste the code over and work in that. I also use git for version control, so I've got all the change history there.</p>",
      "votes": null,
      "replies": [
        {
          "id": 462568,
          "author_name": "pukkinming",
          "author_url": "",
          "post_date": "01/28/2019 14:05:24",
          "content": "<p>Dropbox offers version history as well. Very useful indeed.</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "439897": "It happened to me in almost all competitions I participated that I was not able to reconstruct a model, a set of features that produced my best score, just because I did not take notes.\nI try to improve on this but still happens to me when brainstorming on  new features.\nHow do you keep track on your best set of features?",
    "440103": "Are you using Kaggle kernels? It keeps all your versions with logs, so how could any feature be lost?",
    "440198": "No, I develop on my local machine with Jupyter",
    "440247": "You could try to use some tool to organize your ML experiment, something like MLFlow",
    "440295": "Thanks, I will have a look!",
    "440857": "I also like going old-school sometimes. Physically writing something down really does aid retention for me. I have been looking to get into something like MLFlow for awhile though.",
    "461309": "My way of doing is that whenever u run through a complete modeling cycle, keep the version and result as notebook and make that read-only. Then when you change another thing (not just new features), you create another version of notebook. That way you can keep track of what you did before and use them for ease of reference afterwards.",
    "461492": "Good tip making it read only. I frequently fall in my own trap getting lost around the many notebook versions. Making them readonly may help indeed.",
    "461502": "For small changes, I'll often just make my notes in my script directly, duplicate a section of code, comment out the original with a note of its performance and work on the new version. For bigger changes, I'll create a new script in the project, copy and paste the code over and work in that. I also use git for version control, so I've got all the change history there.",
    "462568": "Dropbox offers version history as well. Very useful indeed.",
    "468195": "Out of curiosity, why do you go local instead of the built-in functionalities?"
  },
  "source": "meta"
}