{
  "id": 8056,
  "title": "Quickly get a score of around .924",
  "url": "/competitions/connectomics/discussion/8056",
  "author_name": "",
  "post_date": "2014-05-06T15:03:52.590Z",
  "votes": 1,
  "comment_count": 12,
  "views": 1953,
  "content": "<p>Inverse cross variance seemed to be a really good feature. &nbsp;Here's a small Matlab script to get a decent score pretty fast.</p>",
  "messages": [
    {
      "id": "44045",
      "postDate": "05/06/2014 15:03:52",
      "content": "<p>Inverse cross variance seemed to be a really good feature. &nbsp;Here's a small Matlab script to get a decent score pretty fast.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "44047",
      "postDate": "05/06/2014 15:08:05",
      "content": "<p>Thanks for the code!&nbsp;</p>\n\n<p>When you say&nbsp;<em>feature</em> does that imply you extracted a bunch of features for each possible connection and framed this as a classification problem?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "44048",
      "postDate": "05/06/2014 15:13:13",
      "content": "<p>I computed multiple features by evaluating the cross variance at different time lags and spike thresholds. &nbsp;So yes, this created a number of features per possible connection. &nbsp;Then I used standard ensemble methods for classification.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "44051",
      "postDate": "05/06/2014 15:21:07",
      "content": "<p>Great ! Have you inferred any model-free law from this single feature ? for example, when cov_inv &gt; thd or cov_inv &lt; thd, it can be inferred as a connection ?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "44053",
      "postDate": "05/06/2014 15:30:02",
      "content": "<p>Well, I tried&nbsp;using inverse covariance matrix when I just joined challenge since it's linked to partial correlation. But I gave up after a few trials and looked for other alternatives because I could not find significant improvement out of it. It seems that&nbsp;I should pay more&nbsp;time on this direction... I'll take a look at your script.&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "44065",
      "postDate": "05/06/2014 16:53:03",
      "content": "<p>Inverse covariances are&nbsp;regularly used to estimate the structure of (multivariate Gaussian) undirected graphical models. By corollary to the classical&nbsp;Hammersley&#8211;Clifford theorem, it is well known theoretical result that zeros in the inverse matrix indicate absent edges in the network.&nbsp; However, this result can't be (directly) used to learn the directions of the edges. But I guess it wasn't that important for this competition?</p>\n<p>One widely used technique based on this theory is graphical lasso. Did somebody try that algorithm for this competition?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "44066",
      "postDate": "05/06/2014 16:55:15",
      "content": "<p>Yes, I first tried graphical lasso. &nbsp;But it actually had a worse score (at least for me). &nbsp;My guess for the reason is that the metric was AUC, and therefore you want every possible connection to have a score (rather than most getting a zero).</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "44068",
      "postDate": "05/06/2014 16:59:01",
      "content": "<p>[quote=gaucho81;44066]</p>\n<p>Yes, I first tried graphical lasso. &nbsp;But it actually had a worse score (at least for me). &nbsp;My guess for the reason is that the metric was AUC, and therefore you want every possible connection to have a score (rather than most getting a zero).</p>\n<p>[/quote]</p>\n<p>Yeah, I think that makes sense. Maybe some kind of&nbsp;bootstrapping could have worked? Ie. split the original dataset to many smaller ones and then run graphical lasso for each one of them and average the results.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "44071",
      "postDate": "05/06/2014 17:04:39",
      "content": "<p>You read my mind! &nbsp;I tried that too, by splitting the time series into chunks, running graphical lasso on each, and then taking mean or max over the chunks. &nbsp;Didn't have much luck with that, but it was towards the end of the competition and I didn't spend much time trying different parameters.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "44072",
      "postDate": "05/06/2014 17:14:13",
      "content": "<p>[quote=gaucho81;44071]</p>\n<p>You read my mind! &nbsp;I tried that too, by splitting the time series into chunks, running graphical lasso on each, and then taking mean or max over the chunks. &nbsp;Didn't have much luck with that, but it was towards the end of the competition and I didn't spend much time trying different parameters.</p>\n<p>[/quote]</p>\n<p>I agree. I also tried the same thing without much luck. I spent tons of time looking for a sparse solution but I did't achieve to improve my solution. <br>My approach was to use ICA-based LiNGAM&nbsp;</p>\n<p>http://www.cs.helsinki.fi/group/neuroinf/lingam/</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "44074",
      "postDate": "05/06/2014 17:34:07",
      "content": "<p>I guess that basically means that the data is not really (or even that close to) Gaussian and then (as far as I know) there isn't any theoretical&nbsp;guarantees for that inverse covariance / graphical lasso method.</p>\n<p>Lately there have been some studies using copulas for non-Gaussian data. (for example: http://repository.cmu.edu/cgi/viewcontent.cgi?article=1061&amp;context=statistics) Have to read that about that ICA based approach as well.</p>\n<p>Damn, too bad that I missed this one out. Seems to be a fun problem.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "44075",
      "postDate": "05/06/2014 17:46:28",
      "content": "<p>There was Gaussian noise added to the data, but the signal was discrete spikes where the probability of a spike depends on previous spikes at other nodes. &nbsp;So in that sense a Bernoulli model makes more sense. &nbsp;This paper discusses how to solve the graphical lasso problem for that type of data,</p>\n<p>http://jmlr.org/papers/volume9/banerjee08a/banerjee08a.pdf</p>\n<p>but there was no open source software I could find and didn't have the time to try implementing it myself.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "44079",
      "postDate": "05/06/2014 18:16:27",
      "content": "<p>We will give more details later, but we basically did that as well. Lots of signal processing + estimates of the inverse of the covariance matrix to retrieve the direct connections.&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 44047,
      "author_name": "dhammack",
      "author_url": "",
      "post_date": "05/06/2014 15:08:05",
      "content": "<p>Thanks for the code!&nbsp;</p>\n\n<p>When you say&nbsp;<em>feature</em> does that imply you extracted a bunch of features for each possible connection and framed this as a classification problem?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 44048,
      "author_name": "george04",
      "author_url": "",
      "post_date": "05/06/2014 15:13:13",
      "content": "<p>I computed multiple features by evaluating the cross variance at different time lags and spike thresholds. &nbsp;So yes, this created a number of features per possible connection. &nbsp;Then I used standard ensemble methods for classification.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 44051,
      "author_name": "liubenyuan",
      "author_url": "",
      "post_date": "05/06/2014 15:21:07",
      "content": "<p>Great ! Have you inferred any model-free law from this single feature ? for example, when cov_inv &gt; thd or cov_inv &lt; thd, it can be inferred as a connection ?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 44053,
      "author_name": "killertom",
      "author_url": "",
      "post_date": "05/06/2014 15:30:02",
      "content": "<p>Well, I tried&nbsp;using inverse covariance matrix when I just joined challenge since it's linked to partial correlation. But I gave up after a few trials and looked for other alternatives because I could not find significant improvement out of it. It seems that&nbsp;I should pay more&nbsp;time on this direction... I'll take a look at your script.&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 44065,
      "author_name": "herrahuu",
      "author_url": "",
      "post_date": "05/06/2014 16:53:03",
      "content": "<p>Inverse covariances are&nbsp;regularly used to estimate the structure of (multivariate Gaussian) undirected graphical models. By corollary to the classical&nbsp;Hammersley&#8211;Clifford theorem, it is well known theoretical result that zeros in the inverse matrix indicate absent edges in the network.&nbsp; However, this result can't be (directly) used to learn the directions of the edges. But I guess it wasn't that important for this competition?</p>\n<p>One widely used technique based on this theory is graphical lasso. Did somebody try that algorithm for this competition?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 44066,
      "author_name": "george04",
      "author_url": "",
      "post_date": "05/06/2014 16:55:15",
      "content": "<p>Yes, I first tried graphical lasso. &nbsp;But it actually had a worse score (at least for me). &nbsp;My guess for the reason is that the metric was AUC, and therefore you want every possible connection to have a score (rather than most getting a zero).</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 44068,
      "author_name": "herrahuu",
      "author_url": "",
      "post_date": "05/06/2014 16:59:01",
      "content": "<p>[quote=gaucho81;44066]</p>\n<p>Yes, I first tried graphical lasso. &nbsp;But it actually had a worse score (at least for me). &nbsp;My guess for the reason is that the metric was AUC, and therefore you want every possible connection to have a score (rather than most getting a zero).</p>\n<p>[/quote]</p>\n<p>Yeah, I think that makes sense. Maybe some kind of&nbsp;bootstrapping could have worked? Ie. split the original dataset to many smaller ones and then run graphical lasso for each one of them and average the results.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 44071,
      "author_name": "george04",
      "author_url": "",
      "post_date": "05/06/2014 17:04:39",
      "content": "<p>You read my mind! &nbsp;I tried that too, by splitting the time series into chunks, running graphical lasso on each, and then taking mean or max over the chunks. &nbsp;Didn't have much luck with that, but it was towards the end of the competition and I didn't spend much time trying different parameters.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 44072,
      "author_name": "lnicalo",
      "author_url": "",
      "post_date": "05/06/2014 17:14:13",
      "content": "<p>[quote=gaucho81;44071]</p>\n<p>You read my mind! &nbsp;I tried that too, by splitting the time series into chunks, running graphical lasso on each, and then taking mean or max over the chunks. &nbsp;Didn't have much luck with that, but it was towards the end of the competition and I didn't spend much time trying different parameters.</p>\n<p>[/quote]</p>\n<p>I agree. I also tried the same thing without much luck. I spent tons of time looking for a sparse solution but I did't achieve to improve my solution. <br>My approach was to use ICA-based LiNGAM&nbsp;</p>\n<p>http://www.cs.helsinki.fi/group/neuroinf/lingam/</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 44074,
      "author_name": "herrahuu",
      "author_url": "",
      "post_date": "05/06/2014 17:34:07",
      "content": "<p>I guess that basically means that the data is not really (or even that close to) Gaussian and then (as far as I know) there isn't any theoretical&nbsp;guarantees for that inverse covariance / graphical lasso method.</p>\n<p>Lately there have been some studies using copulas for non-Gaussian data. (for example: http://repository.cmu.edu/cgi/viewcontent.cgi?article=1061&amp;context=statistics) Have to read that about that ICA based approach as well.</p>\n<p>Damn, too bad that I missed this one out. Seems to be a fun problem.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 44075,
      "author_name": "george04",
      "author_url": "",
      "post_date": "05/06/2014 17:46:28",
      "content": "<p>There was Gaussian noise added to the data, but the signal was discrete spikes where the probability of a spike depends on previous spikes at other nodes. &nbsp;So in that sense a Bernoulli model makes more sense. &nbsp;This paper discusses how to solve the graphical lasso problem for that type of data,</p>\n<p>http://jmlr.org/papers/volume9/banerjee08a/banerjee08a.pdf</p>\n<p>but there was no open source software I could find and didn't have the time to try implementing it myself.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 44079,
      "author_name": "glouppe",
      "author_url": "",
      "post_date": "05/06/2014 18:16:27",
      "content": "<p>We will give more details later, but we basically did that as well. Lots of signal processing + estimates of the inverse of the covariance matrix to retrieve the direct connections.&nbsp;</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "44045": "",
    "44047": "",
    "44048": "",
    "44051": "",
    "44053": "",
    "44065": "",
    "44066": "",
    "44068": "",
    "44071": "",
    "44072": "",
    "44074": "",
    "44075": "",
    "44079": ""
  },
  "source": "meta"
}