{
  "id": 75061,
  "title": "6th Place Solution Summary",
  "url": "/competitions/PLAsTiCC-2018/writeups/stefan-stefanov-6th-place-solution-summary",
  "author_name": "",
  "post_date": "2018-12-18T08:15:12.406445700Z",
  "votes": 53,
  "comment_count": 10,
  "views": 0,
  "content": "<p>6th place solution is a neural network consisting of 3 components:</p>\n\n<ol>\n<li><p>Meta Encoder  - taking as input meta features hostgal photoz, hostgal photoz err, is galactic and summary stats for flux and flux_err as min/max/mean etc.</p></li>\n<li><p>Light Curve Encoder - bidirectional GRU taking as input grouped by day flux, flux_err, detected and time difference</p></li>\n<li><p>Spectroscopic Redshift Predictor – two fully-connected layers for predicting hostgal specz</p></li>\n</ol>\n\n<p>Outputs of these 3 components are fed into two last fully-connected layers for predicting class probabilities.</p>\n\n<p>Light curve encoder was pre-trained as autoencoder on test data.  Spectroscopic redshift predictor was also pre-trained on test data objects for which hostgal specz is available.</p>\n\n<p>Augmentations. Three types of augmentations are performed:</p>\n\n<ol>\n<li>flux as a Gaussian with standard deviation flux_err</li>\n<li>hostgal photoz as a Gaussian with standard deviation hostgal photoz err</li>\n<li>randomly dropping observations</li>\n</ol>\n\n<p>Top submission is an average of 5 cross-validation runs of 3 neural network variations. </p>",
  "messages": [
    {
      "id": "441059",
      "postDate": "12/18/2018 08:15:12",
      "content": "<p>6th place solution is a neural network consisting of 3 components:</p>\n\n<ol>\n<li><p>Meta Encoder  - taking as input meta features hostgal photoz, hostgal photoz err, is galactic and summary stats for flux and flux_err as min/max/mean etc.</p></li>\n<li><p>Light Curve Encoder - bidirectional GRU taking as input grouped by day flux, flux_err, detected and time difference</p></li>\n<li><p>Spectroscopic Redshift Predictor – two fully-connected layers for predicting hostgal specz</p></li>\n</ol>\n\n<p>Outputs of these 3 components are fed into two last fully-connected layers for predicting class probabilities.</p>\n\n<p>Light curve encoder was pre-trained as autoencoder on test data.  Spectroscopic redshift predictor was also pre-trained on test data objects for which hostgal specz is available.</p>\n\n<p>Augmentations. Three types of augmentations are performed:</p>\n\n<ol>\n<li>flux as a Gaussian with standard deviation flux_err</li>\n<li>hostgal photoz as a Gaussian with standard deviation hostgal photoz err</li>\n<li>randomly dropping observations</li>\n</ol>\n\n<p>Top submission is an average of 5 cross-validation runs of 3 neural network variations. </p>",
      "rawMarkdown": "6th place solution is a neural network consisting of 3 components:\n\n1. Meta Encoder  - taking as input meta features hostgal photoz, hostgal photoz err, is galactic and summary stats for flux and flux_err as min/max/mean etc.\n\n2. Light Curve Encoder - bidirectional GRU taking as input grouped by day flux, flux_err, detected and time difference\n\n3.  Spectroscopic Redshift Predictor – two fully-connected layers for predicting hostgal specz\n\nOutputs of these 3 components are fed into two last fully-connected layers for predicting class probabilities.\n\nLight curve encoder was pre-trained as autoencoder on test data.  Spectroscopic redshift predictor was also pre-trained on test data objects for which hostgal specz is available.\n\nAugmentations. Three types of augmentations are performed:\n\n1.  flux as a Gaussian with standard deviation flux_err\n2.  hostgal photoz as a Gaussian with standard deviation hostgal photoz err\n3.  randomly dropping observations\n\nTop submission is an average of 5 cross-validation runs of 3 neural network variations.",
      "votes": null
    },
    {
      "id": "441067",
      "postDate": "12/18/2018 08:20:56",
      "content": "<p>Very interesting, thanks for sharing, and congrats on the result.  Third good solution with specz predictor, we clearly missed that one. Do you intend to share your code?</p>",
      "rawMarkdown": "Very interesting, thanks for sharing, and congrats on the result.  Third good solution with specz predictor, we clearly missed that one. Do you intend to share your code?",
      "votes": null
    },
    {
      "id": "441068",
      "postDate": "12/18/2018 08:22:25",
      "content": "<p>Congrats! Your solution is pretty efficient! Haven't tried adding a spectroscopic redshift predictor in training time, good idea!</p>",
      "rawMarkdown": "Congrats! Your solution is pretty efficient! Haven't tried adding a spectroscopic redshift predictor in training time, good idea!",
      "votes": null
    },
    {
      "id": "441070",
      "postDate": "12/18/2018 08:23:11",
      "content": "<p>Seems we noticed the same thing at almost the same time :)</p>",
      "rawMarkdown": "Seems we noticed the same thing at almost the same time :)",
      "votes": null
    },
    {
      "id": "441072",
      "postDate": "12/18/2018 08:26:26",
      "content": "<p>Awesome solution. Congratulations for the 6th position. \nEvery time I saw leader board I wondered about your low number of submissions and very high score. It's clear now, you have a solid approach.</p>",
      "rawMarkdown": "Awesome solution. Congratulations for the 6th position. \nEvery time I saw leader board I wondered about your low number of submissions and very high score. It's clear now, you have a solid approach.",
      "votes": null
    },
    {
      "id": "441093",
      "postDate": "12/18/2018 08:54:39",
      "content": "<p>Very interesting work! Kudos</p>",
      "rawMarkdown": "Very interesting work! Kudos",
      "votes": null
    },
    {
      "id": "441148",
      "postDate": "12/18/2018 10:28:25",
      "content": "<p>Cool! I tried to use NN as predictor and encoder,but I was failed :( \nDo you use Pytorch? Keras? TensorFlow?\nWill you show your code?</p>",
      "rawMarkdown": "Cool! I tried to use NN as predictor and encoder,but I was failed :( \nDo you use Pytorch? Keras? TensorFlow?\nWill you show your code?",
      "votes": null
    },
    {
      "id": "441189",
      "postDate": "12/18/2018 11:39:28",
      "content": "<p>Congrats Stefan, clean and nice solution.</p>",
      "rawMarkdown": "Congrats Stefan, clean and nice solution.",
      "votes": null
    },
    {
      "id": "441375",
      "postDate": "12/18/2018 15:43:38",
      "content": "<p>Congratulations and Thanks for sharing your solution. \nIt's amazing that experts like you need only few submissions to reach up to the top. I tried to squeeze even the last bit of what was left in my already-beaten-to-death model by submitting as much as possible, and I've been lingering below the bronze medalists all along.</p>",
      "rawMarkdown": "Congratulations and Thanks for sharing your solution. \nIt's amazing that experts like you need only few submissions to reach up to the top. I tried to squeeze even the last bit of what was left in my already-beaten-to-death model by submitting as much as possible, and I've been lingering below the bronze medalists all along.",
      "votes": null
    },
    {
      "id": "441434",
      "postDate": "12/18/2018 16:53:27",
      "content": "<p>Thank you all! I used PyTorch and skorch for this competition. The code needs some serious efforts before becoming publishable and usable for others so not sure whether and when I will be able to do this.</p>",
      "rawMarkdown": "Thank you all! I used PyTorch and skorch for this competition. The code needs some serious efforts before becoming publishable and usable for others so not sure whether and when I will be able to do this.",
      "votes": null
    },
    {
      "id": "441850",
      "postDate": "12/19/2018 06:50:58",
      "content": "<p>Congratulations Stefan ! Interesting solution, thanks for sharing :) </p>",
      "rawMarkdown": "Congratulations Stefan ! Interesting solution, thanks for sharing :)",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 441067,
      "author_name": "cpmpml",
      "author_url": "",
      "post_date": "12/18/2018 08:20:56",
      "content": "<p>Very interesting, thanks for sharing, and congrats on the result.  Third good solution with specz predictor, we clearly missed that one. Do you intend to share your code?</p>",
      "votes": null,
      "replies": [
        {
          "id": 441070,
          "author_name": "khyeh0719",
          "author_url": "",
          "post_date": "12/18/2018 08:23:11",
          "content": "<p>Seems we noticed the same thing at almost the same time :)</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 441068,
      "author_name": "khyeh0719",
      "author_url": "",
      "post_date": "12/18/2018 08:22:25",
      "content": "<p>Congrats! Your solution is pretty efficient! Haven't tried adding a spectroscopic redshift predictor in training time, good idea!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 441072,
      "author_name": "subrahmanyamv",
      "author_url": "",
      "post_date": "12/18/2018 08:26:26",
      "content": "<p>Awesome solution. Congratulations for the 6th position. \nEvery time I saw leader board I wondered about your low number of submissions and very high score. It's clear now, you have a solid approach.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 441093,
      "author_name": "malyaban",
      "author_url": "",
      "post_date": "12/18/2018 08:54:39",
      "content": "<p>Very interesting work! Kudos</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 441148,
      "author_name": "suvalex",
      "author_url": "",
      "post_date": "12/18/2018 10:28:25",
      "content": "<p>Cool! I tried to use NN as predictor and encoder,but I was failed :( \nDo you use Pytorch? Keras? TensorFlow?\nWill you show your code?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 441189,
      "author_name": "titericz",
      "author_url": "",
      "post_date": "12/18/2018 11:39:28",
      "content": "<p>Congrats Stefan, clean and nice solution.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 441375,
      "author_name": "vignam",
      "author_url": "",
      "post_date": "12/18/2018 15:43:38",
      "content": "<p>Congratulations and Thanks for sharing your solution. \nIt's amazing that experts like you need only few submissions to reach up to the top. I tried to squeeze even the last bit of what was left in my already-beaten-to-death model by submitting as much as possible, and I've been lingering below the bronze medalists all along.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 441434,
      "author_name": "stefanstefanov",
      "author_url": "",
      "post_date": "12/18/2018 16:53:27",
      "content": "<p>Thank you all! I used PyTorch and skorch for this competition. The code needs some serious efforts before becoming publishable and usable for others so not sure whether and when I will be able to do this.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 441850,
      "author_name": "ogrellier",
      "author_url": "",
      "post_date": "12/19/2018 06:50:58",
      "content": "<p>Congratulations Stefan ! Interesting solution, thanks for sharing :) </p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "441059": "6th place solution is a neural network consisting of 3 components:\n\n1. Meta Encoder  - taking as input meta features hostgal photoz, hostgal photoz err, is galactic and summary stats for flux and flux_err as min/max/mean etc.\n\n2. Light Curve Encoder - bidirectional GRU taking as input grouped by day flux, flux_err, detected and time difference\n\n3.  Spectroscopic Redshift Predictor – two fully-connected layers for predicting hostgal specz\n\nOutputs of these 3 components are fed into two last fully-connected layers for predicting class probabilities.\n\nLight curve encoder was pre-trained as autoencoder on test data.  Spectroscopic redshift predictor was also pre-trained on test data objects for which hostgal specz is available.\n\nAugmentations. Three types of augmentations are performed:\n\n1.  flux as a Gaussian with standard deviation flux_err\n2.  hostgal photoz as a Gaussian with standard deviation hostgal photoz err\n3.  randomly dropping observations\n\nTop submission is an average of 5 cross-validation runs of 3 neural network variations.",
    "441067": "Very interesting, thanks for sharing, and congrats on the result.  Third good solution with specz predictor, we clearly missed that one. Do you intend to share your code?",
    "441068": "Congrats! Your solution is pretty efficient! Haven't tried adding a spectroscopic redshift predictor in training time, good idea!",
    "441070": "Seems we noticed the same thing at almost the same time :)",
    "441072": "Awesome solution. Congratulations for the 6th position. \nEvery time I saw leader board I wondered about your low number of submissions and very high score. It's clear now, you have a solid approach.",
    "441093": "Very interesting work! Kudos",
    "441148": "Cool! I tried to use NN as predictor and encoder,but I was failed :( \nDo you use Pytorch? Keras? TensorFlow?\nWill you show your code?",
    "441189": "Congrats Stefan, clean and nice solution.",
    "441375": "Congratulations and Thanks for sharing your solution. \nIt's amazing that experts like you need only few submissions to reach up to the top. I tried to squeeze even the last bit of what was left in my already-beaten-to-death model by submitting as much as possible, and I've been lingering below the bronze medalists all along.",
    "441434": "Thank you all! I used PyTorch and skorch for this competition. The code needs some serious efforts before becoming publishable and usable for others so not sure whether and when I will be able to do this.",
    "441850": "Congratulations Stefan ! Interesting solution, thanks for sharing :)"
  },
  "source": "meta"
}