{
  "id": 172387,
  "title": "How to combine decision trees with CNNs?",
  "url": "/competitions/osic-pulmonary-fibrosis-progression/discussion/172387",
  "author_name": "Christian Gebbe",
  "post_date": "2020-08-04T21:28:49.992000",
  "votes": 1,
  "comment_count": 4,
  "views": 0,
  "content": "<p>Maybe a stupid question, but I'm not very familiar with decision trees. Some kernels use decision trees (via lightGBM) for the tabular features in order to predict FVC, e.g. <a href=\"https://www.kaggle.com/yasufuminakama/osic-lgb-baseline\">https://www.kaggle.com/yasufuminakama/osic-lgb-baseline</a></p>\n\n<p>If I understand correctly, such decision tree frameworks provide their own training function, which add new leafs in each optimization step. This training seems significantly different from CNNs, where we define a loss function and then adapt the weights and biases by performing gradient descent on that loss. </p>\n\n<p>Thus, is it possible to jointly train decision trees and CNNs (using e.g. a loss sum)? If yes, how? Thanks in advance.</p>",
  "messages": [
    {
      "id": 959045,
      "postDate": "2020-08-05T09:50:29.570Z",
      "content": "<p>check out this thread: <a href=\"https://www.kaggle.com/c/osic-pulmonary-fibrosis-progression/discussion/170392\" target=\"_blank\">https://www.kaggle.com/c/osic-pulmonary-fibrosis-progression/discussion/170392</a>. <br>\nthe subject is already discussed over there, at least one of the possible approaches. </p>\n<p>also, a kaggle notebook can be found here (<strong>slightly different approach</strong>, using latent space based on encoder-decoder architecture) : <a href=\"https://www.kaggle.com/carlossouza/end-to-end-model-ct-scans-tabular\" target=\"_blank\">https://www.kaggle.com/carlossouza/end-to-end-model-ct-scans-tabular</a></p>\n<p>if you need more details, there are articles explaining this approach in more simple and clear words. One example : <a href=\"https://www.pyimagesearch.com/2019/02/18/breast-cancer-classification-with-keras-and-deep-learning/\" target=\"_blank\">https://www.pyimagesearch.com/2019/02/18/breast-cancer-classification-with-keras-and-deep-learning/</a></p>\n<p><strong>Alternatively</strong>, on other discussion threads people are talking about extracting image features and use them as features on top of the tabular data that is fed into the simple DNN approach with several Dense layers.  </p>\n<p>there are <strong>other ideas</strong> as well, but I want to try them first before presenting them here as valid ideas.</p>",
      "rawMarkdown": "check out this thread: https://www.kaggle.com/c/osic-pulmonary-fibrosis-progression/discussion/170392. \nthe subject is already discussed over there, at least one of the possible approaches. \n\nalso, a kaggle notebook can be found here (**slightly different approach**, using latent space based on encoder-decoder architecture) : https://www.kaggle.com/carlossouza/end-to-end-model-ct-scans-tabular\n\nif you need more details, there are articles explaining this approach in more simple and clear words. One example : https://www.pyimagesearch.com/2019/02/18/breast-cancer-classification-with-keras-and-deep-learning/\n\n**Alternatively**, on other discussion threads people are talking about extracting image features and use them as features on top of the tabular data that is fed into the simple DNN approach with several Dense layers.  \n\nthere are **other ideas** as well, but I want to try them first before presenting them here as valid ideas.",
      "votes": 5,
      "replies": [
        {
          "id": 959608,
          "postDate": "2020-08-05T18:32:56.430Z",
          "content": "<p>Pretty informative, thanks!</p>",
          "rawMarkdown": "Pretty informative, thanks!",
          "votes": 1
        },
        {
          "id": 959610,
          "postDate": "2020-08-05T18:34:31.927Z",
          "rawMarkdown": "",
          "isDeleted": true
        }
      ]
    },
    {
      "id": 958239,
      "postDate": "2020-08-04T21:28:49.993Z",
      "content": "<p>Maybe a stupid question, but I'm not very familiar with decision trees. Some kernels use decision trees (via lightGBM) for the tabular features in order to predict FVC, e.g. <a href=\"https://www.kaggle.com/yasufuminakama/osic-lgb-baseline\">https://www.kaggle.com/yasufuminakama/osic-lgb-baseline</a></p>\n\n<p>If I understand correctly, such decision tree frameworks provide their own training function, which add new leafs in each optimization step. This training seems significantly different from CNNs, where we define a loss function and then adapt the weights and biases by performing gradient descent on that loss. </p>\n\n<p>Thus, is it possible to jointly train decision trees and CNNs (using e.g. a loss sum)? If yes, how? Thanks in advance.</p>",
      "rawMarkdown": "Maybe a stupid question, but I'm not very familiar with decision trees. Some kernels use decision trees (via lightGBM) for the tabular features in order to predict FVC, e.g. https://www.kaggle.com/yasufuminakama/osic-lgb-baseline\n\nIf I understand correctly, such decision tree frameworks provide their own training function, which add new leafs in each optimization step. This training seems significantly different from CNNs, where we define a loss function and then adapt the weights and biases by performing gradient descent on that loss. \n\nThus, is it possible to jointly train decision trees and CNNs (using e.g. a loss sum)? If yes, how? Thanks in advance.",
      "votes": 1
    },
    {
      "id": 958651,
      "postDate": "2020-08-05T05:20:55.927Z",
      "rawMarkdown": "",
      "isDeleted": true
    }
  ],
  "comments": [
    {
      "id": 959045,
      "author_name": "Nicu",
      "author_url": "",
      "post_date": "2020-08-05T09:50:29.570000",
      "content": "<p>check out this thread: <a href=\"https://www.kaggle.com/c/osic-pulmonary-fibrosis-progression/discussion/170392\" target=\"_blank\">https://www.kaggle.com/c/osic-pulmonary-fibrosis-progression/discussion/170392</a>. <br>\nthe subject is already discussed over there, at least one of the possible approaches. </p>\n<p>also, a kaggle notebook can be found here (<strong>slightly different approach</strong>, using latent space based on encoder-decoder architecture) : <a href=\"https://www.kaggle.com/carlossouza/end-to-end-model-ct-scans-tabular\" target=\"_blank\">https://www.kaggle.com/carlossouza/end-to-end-model-ct-scans-tabular</a></p>\n<p>if you need more details, there are articles explaining this approach in more simple and clear words. One example : <a href=\"https://www.pyimagesearch.com/2019/02/18/breast-cancer-classification-with-keras-and-deep-learning/\" target=\"_blank\">https://www.pyimagesearch.com/2019/02/18/breast-cancer-classification-with-keras-and-deep-learning/</a></p>\n<p><strong>Alternatively</strong>, on other discussion threads people are talking about extracting image features and use them as features on top of the tabular data that is fed into the simple DNN approach with several Dense layers.  </p>\n<p>there are <strong>other ideas</strong> as well, but I want to try them first before presenting them here as valid ideas.</p>",
      "votes": 5,
      "replies": [
        {
          "id": 959608,
          "author_name": "Prabhakar Kumar",
          "author_url": "",
          "post_date": "2020-08-05T18:32:56.430000",
          "content": "<p>Pretty informative, thanks!</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 959610,
          "author_name": "",
          "author_url": "",
          "post_date": "2020-08-05T18:34:31.927000",
          "content": "",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 958651,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-05T05:20:55.927000",
      "content": "",
      "votes": 0,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "959045": "check out this thread: https://www.kaggle.com/c/osic-pulmonary-fibrosis-progression/discussion/170392. \nthe subject is already discussed over there, at least one of the possible approaches. \n\nalso, a kaggle notebook can be found here (**slightly different approach**, using latent space based on encoder-decoder architecture) : https://www.kaggle.com/carlossouza/end-to-end-model-ct-scans-tabular\n\nif you need more details, there are articles explaining this approach in more simple and clear words. One example : https://www.pyimagesearch.com/2019/02/18/breast-cancer-classification-with-keras-and-deep-learning/\n\n**Alternatively**, on other discussion threads people are talking about extracting image features and use them as features on top of the tabular data that is fed into the simple DNN approach with several Dense layers.  \n\nthere are **other ideas** as well, but I want to try them first before presenting them here as valid ideas.",
    "958239": "Maybe a stupid question, but I'm not very familiar with decision trees. Some kernels use decision trees (via lightGBM) for the tabular features in order to predict FVC, e.g. https://www.kaggle.com/yasufuminakama/osic-lgb-baseline\n\nIf I understand correctly, such decision tree frameworks provide their own training function, which add new leafs in each optimization step. This training seems significantly different from CNNs, where we define a loss function and then adapt the weights and biases by performing gradient descent on that loss. \n\nThus, is it possible to jointly train decision trees and CNNs (using e.g. a loss sum)? If yes, how? Thanks in advance.",
    "958651": ""
  }
}