{
  "id": 106272,
  "title": "Does blending really helped you? ",
  "url": "/competitions/champs-scalar-coupling/discussion/106272",
  "author_name": "",
  "post_date": "2019-08-29T00:43:30.742728900Z",
  "votes": 11,
  "comment_count": 15,
  "views": 0,
  "content": "<p>Please share your story if you blended just other's model results. How this affected on you standing on the LB. </p>\n\n<p>Thank you very much for attention. </p>",
  "messages": [
    {
      "id": "610735",
      "postDate": "08/29/2019 00:43:30",
      "content": "<p>Please share your story if you blended just other's model results. How this affected on you standing on the LB. </p>\n\n<p>Thank you very much for attention. </p>",
      "rawMarkdown": "Please share your story if you blended just other's model results. How this affected on you standing on the LB. \n\nThank you very much for attention.",
      "votes": null
    },
    {
      "id": "610750",
      "postDate": "08/29/2019 00:54:58",
      "content": "<p>Blending is useful when you have a consistent CV strategy and OOFs at hand.</p>",
      "rawMarkdown": "Blending is useful when you have a consistent CV strategy and OOFs at hand.",
      "votes": null
    },
    {
      "id": "610758",
      "postDate": "08/29/2019 00:58:01",
      "content": "<p>sure, there are many techniques, and for example the <em>theorem central limit</em> about estimating real mu (mean) is a good argument if you are doing average blending :)</p>",
      "rawMarkdown": "sure, there are many techniques, and for example the *theorem central limit* about estimating real mu (mean) is a good argument if you are doing average blending :)",
      "votes": null
    },
    {
      "id": "610771",
      "postDate": "08/29/2019 01:04:10",
      "content": "<p>Using 4 kernels with LB scores -1.83,-2.02,-2.05,-1.87, I was able to reach -2.20. -1.83 was from the public kernel. Others were private kernels. Weighted average was used. It works !</p>",
      "rawMarkdown": "Using 4 kernels with LB scores -1.83,-2.02,-2.05,-1.87, I was able to reach -2.20. -1.83 was from the public kernel. Others were private kernels. Weighted average was used. It works !",
      "votes": null
    },
    {
      "id": "610964",
      "postDate": "08/29/2019 03:32:33",
      "content": "<p>There's a mathematical formula for blending regression models. If one model has <code>mae=x</code> and one model has <code>mae=y</code> where <code>x &lt; y</code> then if <code>0.5*(1-x/y)</code> percentage of prediction errors change sign (i.e. model one has positive error on a certain perdiction while model two has negative error) then an ensemble with weights <code>y/(x+y)</code> and <code>x/(x+y)</code> will increase mae.</p>",
      "rawMarkdown": "There's a mathematical formula for blending regression models. If one model has `mae=x` and one model has `mae=y` where `x &lt; y` then if `0.5*(1-x/y)` percentage of prediction errors change sign (i.e. model one has positive error on a certain perdiction while model two has negative error) then an ensemble with weights `y/(x+y)` and `x/(x+y)` will increase mae.",
      "votes": null
    },
    {
      "id": "611233",
      "postDate": "08/29/2019 07:16:05",
      "content": "<p>I blended my several of my own weaker models and got a .2 bump</p>",
      "rawMarkdown": "I blended my several of my own weaker models and got a .2 bump",
      "votes": null
    },
    {
      "id": "611603",
      "postDate": "08/29/2019 10:45:15",
      "content": "<p>Do you have a reference for this?  I'm curious to learn more about the theoretical justification for blending. I keep hearing people reference the CLT, but standard forms of the CLT (like you'd find in a first probability course) don't seem applicable (but maybe I'm missing something obvious).  This sounds like a more promising justification.  </p>",
      "rawMarkdown": "Do you have a reference for this?  I'm curious to learn more about the theoretical justification for blending. I keep hearing people reference the CLT, but standard forms of the CLT (like you'd find in a first probability course) don't seem applicable (but maybe I'm missing something obvious).  This sounds like a more promising justification.",
      "votes": null
    },
    {
      "id": "612811",
      "postDate": "08/30/2019 02:44:23",
      "content": "<p>When I gain access to a computer next week, I'll post the equations. The general idea is as follows.</p>\n\n<p>When a model makes a prediction, it is either above true value (positive error) or below true value (negative error). If two models with <code>mae=x</code> and <code>mae=y</code> have postive error on every prediction then their ensemble has <code>mae=(x+y)/2</code> and ensemble does not help.</p>\n\n<p>But if one model predicts a coupling with +1 error and another predicts with -1 error, then when you average the predictions together, the ensemble has zero error on that prediction.</p>",
      "rawMarkdown": "When I gain access to a computer next week, I'll post the equations. The general idea is as follows.\n\nWhen a model makes a prediction, it is either above true value (positive error) or below true value (negative error). If two models with `mae=x` and `mae=y` have postive error on every prediction then their ensemble has `mae=(x+y)/2` and ensemble does not help.\n\nBut if one model predicts a coupling with +1 error and another predicts with -1 error, then when you average the predictions together, the ensemble has zero error on that prediction.",
      "votes": null
    },
    {
      "id": "613310",
      "postDate": "08/30/2019 12:12:38",
      "content": "<blockquote>\n  <p>weights 1/x and 1/y will increase mae.</p>\n</blockquote>\n\n<p>It must be a bit different, as the weights should not be modified if I scale everything by a constant factor.</p>",
      "rawMarkdown": "&gt;  weights 1/x and 1/y will increase mae.\n\nIt must be a bit different, as the weights should not be modified if I scale everything by a constant factor.",
      "votes": null
    },
    {
      "id": "613326",
      "postDate": "08/30/2019 12:20:56",
      "content": "<p><a href=\"/cdeotte\">@cdeotte</a> Interesting.  I'd love to look at the equations when you get some time.  Thanks!</p>",
      "rawMarkdown": "cdeotte Interesting.  I'd love to look at the equations when you get some time.  Thanks!",
      "votes": null
    },
    {
      "id": "613335",
      "postDate": "08/30/2019 12:29:22",
      "content": "<p>The equation for the sum of two random variates is</p>\n\n<p>$$Var(X1+X2)=Var(X1)+Var(X2)+2Cov(X1,X2)$$</p>\n\n<p>From this you can see that there's the biggest improvement to the error of the mean when two methods are completely uncorrelated. Specifically for the case variates following normal distributions, you can have a look at <a href=\"https://en.wikipedia.org/wiki/Sum_of_normally_distributed_random_variables\">this wikipedia page.</a></p>",
      "rawMarkdown": "The equation for the sum of two random variates is\n\n$$Var(X1+X2)=Var(X1)+Var(X2)+2Cov(X1,X2)$$\n\nFrom this you can see that there's the biggest improvement to the error of the mean when two methods are completely uncorrelated. Specifically for the case variates following normal distributions, you can have a look at [this wikipedia page.](https://en.wikipedia.org/wiki/Sum_of_normally_distributed_random_variables)",
      "votes": null
    },
    {
      "id": "613346",
      "postDate": "08/30/2019 12:41:47",
      "content": "<p>Lars, your analysis applies to mean squared error, not mae ;)</p>",
      "rawMarkdown": "Lars, your analysis applies to mean squared error, not mae ;)",
      "votes": null
    },
    {
      "id": "613373",
      "postDate": "08/30/2019 13:04:56",
      "content": "<p>Only if you assume normal distributed variates (which the latter link refers to). For Laplacian distributions, which usually resembles test errors better than normal distributions, you would get something more closely related to the MAEs. I highlighted Normal distributions since they tend to be a bit easier to understand and work with. <a href=\"/cdeotte\">@cdeotte</a> might be thinking about some other sets of equations though.</p>",
      "rawMarkdown": "Only if you assume normal distributed variates (which the latter link refers to). For Laplacian distributions, which usually resembles test errors better than normal distributions, you would get something more closely related to the MAEs. I highlighted Normal distributions since they tend to be a bit easier to understand and work with. @cdeotte might be thinking about some other sets of equations though.",
      "votes": null
    },
    {
      "id": "613382",
      "postDate": "08/30/2019 13:08:41",
      "content": "<p>Laers, given you are active here I'm asking it here: why did you never answer Cédric Bény question about the coordinate system of shielding data?</p>",
      "rawMarkdown": "Laers, given you are active here I'm asking it here: why did you never answer Cédric Bény question about the coordinate system of shielding data?",
      "votes": null
    },
    {
      "id": "613561",
      "postDate": "08/30/2019 16:12:11",
      "content": "<p><a href=\"/cpmpml\">@cpmpml</a> Thanks for the correction. I meant multiply model one by <code>1/x</code> and multiply model two by <code>1/y</code> then divide by <code>1/x + 1/y</code>. So the weights are <code>y/(x+y)</code> and <code>x/(x+y)</code>.</p>",
      "rawMarkdown": "cpmpml Thanks for the correction. I meant multiply model one by `1/x` and multiply model two by `1/y` then divide by `1/x + 1/y`. So the weights are `y/(x+y)` and `x/(x+y)`.",
      "votes": null
    },
    {
      "id": "613596",
      "postDate": "08/30/2019 16:40:33",
      "content": "<p><a href=\"/cpmpml\">@cpmpml</a> Thanks for the reminder. I have made a response <a href=\"https://www.kaggle.com/c/champs-scalar-coupling/discussion/99055613592\">over here.</a></p>",
      "rawMarkdown": "cpmpml Thanks for the reminder. I have made a response [over here.](https://www.kaggle.com/c/champs-scalar-coupling/discussion/99055613592)",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 610750,
      "author_name": "scaomath",
      "author_url": "",
      "post_date": "08/29/2019 00:54:58",
      "content": "<p>Blending is useful when you have a consistent CV strategy and OOFs at hand.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 610758,
      "author_name": "jesucristo",
      "author_url": "",
      "post_date": "08/29/2019 00:58:01",
      "content": "<p>sure, there are many techniques, and for example the <em>theorem central limit</em> about estimating real mu (mean) is a good argument if you are doing average blending :)</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 610771,
      "author_name": "silence2",
      "author_url": "",
      "post_date": "08/29/2019 01:04:10",
      "content": "<p>Using 4 kernels with LB scores -1.83,-2.02,-2.05,-1.87, I was able to reach -2.20. -1.83 was from the public kernel. Others were private kernels. Weighted average was used. It works !</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 610964,
      "author_name": "cdeotte",
      "author_url": "",
      "post_date": "08/29/2019 03:32:33",
      "content": "<p>There's a mathematical formula for blending regression models. If one model has <code>mae=x</code> and one model has <code>mae=y</code> where <code>x &lt; y</code> then if <code>0.5*(1-x/y)</code> percentage of prediction errors change sign (i.e. model one has positive error on a certain perdiction while model two has negative error) then an ensemble with weights <code>y/(x+y)</code> and <code>x/(x+y)</code> will increase mae.</p>",
      "votes": null,
      "replies": [
        {
          "id": 611603,
          "author_name": "abendorf",
          "author_url": "",
          "post_date": "08/29/2019 10:45:15",
          "content": "<p>Do you have a reference for this?  I'm curious to learn more about the theoretical justification for blending. I keep hearing people reference the CLT, but standard forms of the CLT (like you'd find in a first probability course) don't seem applicable (but maybe I'm missing something obvious).  This sounds like a more promising justification.  </p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 612811,
          "author_name": "cdeotte",
          "author_url": "",
          "post_date": "08/30/2019 02:44:23",
          "content": "<p>When I gain access to a computer next week, I'll post the equations. The general idea is as follows.</p>\n\n<p>When a model makes a prediction, it is either above true value (positive error) or below true value (negative error). If two models with <code>mae=x</code> and <code>mae=y</code> have postive error on every prediction then their ensemble has <code>mae=(x+y)/2</code> and ensemble does not help.</p>\n\n<p>But if one model predicts a coupling with +1 error and another predicts with -1 error, then when you average the predictions together, the ensemble has zero error on that prediction.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 613310,
          "author_name": "cpmpml",
          "author_url": "",
          "post_date": "08/30/2019 12:12:38",
          "content": "<blockquote>\n  <p>weights 1/x and 1/y will increase mae.</p>\n</blockquote>\n\n<p>It must be a bit different, as the weights should not be modified if I scale everything by a constant factor.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 613326,
          "author_name": "abendorf",
          "author_url": "",
          "post_date": "08/30/2019 12:20:56",
          "content": "<p><a href=\"/cdeotte\">@cdeotte</a> Interesting.  I'd love to look at the equations when you get some time.  Thanks!</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 613335,
          "author_name": "larsbratholm",
          "author_url": "",
          "post_date": "08/30/2019 12:29:22",
          "content": "<p>The equation for the sum of two random variates is</p>\n\n<p>$$Var(X1+X2)=Var(X1)+Var(X2)+2Cov(X1,X2)$$</p>\n\n<p>From this you can see that there's the biggest improvement to the error of the mean when two methods are completely uncorrelated. Specifically for the case variates following normal distributions, you can have a look at <a href=\"https://en.wikipedia.org/wiki/Sum_of_normally_distributed_random_variables\">this wikipedia page.</a></p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 613346,
          "author_name": "cpmpml",
          "author_url": "",
          "post_date": "08/30/2019 12:41:47",
          "content": "<p>Lars, your analysis applies to mean squared error, not mae ;)</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 613373,
          "author_name": "larsbratholm",
          "author_url": "",
          "post_date": "08/30/2019 13:04:56",
          "content": "<p>Only if you assume normal distributed variates (which the latter link refers to). For Laplacian distributions, which usually resembles test errors better than normal distributions, you would get something more closely related to the MAEs. I highlighted Normal distributions since they tend to be a bit easier to understand and work with. <a href=\"/cdeotte\">@cdeotte</a> might be thinking about some other sets of equations though.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 613382,
          "author_name": "cpmpml",
          "author_url": "",
          "post_date": "08/30/2019 13:08:41",
          "content": "<p>Laers, given you are active here I'm asking it here: why did you never answer Cédric Bény question about the coordinate system of shielding data?</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 613561,
          "author_name": "cdeotte",
          "author_url": "",
          "post_date": "08/30/2019 16:12:11",
          "content": "<p><a href=\"/cpmpml\">@cpmpml</a> Thanks for the correction. I meant multiply model one by <code>1/x</code> and multiply model two by <code>1/y</code> then divide by <code>1/x + 1/y</code>. So the weights are <code>y/(x+y)</code> and <code>x/(x+y)</code>.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 613596,
          "author_name": "larsbratholm",
          "author_url": "",
          "post_date": "08/30/2019 16:40:33",
          "content": "<p><a href=\"/cpmpml\">@cpmpml</a> Thanks for the reminder. I have made a response <a href=\"https://www.kaggle.com/c/champs-scalar-coupling/discussion/99055613592\">over here.</a></p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 611233,
      "author_name": "julianmukaj",
      "author_url": "",
      "post_date": "08/29/2019 07:16:05",
      "content": "<p>I blended my several of my own weaker models and got a .2 bump</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "610735": "Please share your story if you blended just other's model results. How this affected on you standing on the LB. \n\nThank you very much for attention.",
    "610750": "Blending is useful when you have a consistent CV strategy and OOFs at hand.",
    "610758": "sure, there are many techniques, and for example the *theorem central limit* about estimating real mu (mean) is a good argument if you are doing average blending :)",
    "610771": "Using 4 kernels with LB scores -1.83,-2.02,-2.05,-1.87, I was able to reach -2.20. -1.83 was from the public kernel. Others were private kernels. Weighted average was used. It works !",
    "610964": "There's a mathematical formula for blending regression models. If one model has `mae=x` and one model has `mae=y` where `x &lt; y` then if `0.5*(1-x/y)` percentage of prediction errors change sign (i.e. model one has positive error on a certain perdiction while model two has negative error) then an ensemble with weights `y/(x+y)` and `x/(x+y)` will increase mae.",
    "611233": "I blended my several of my own weaker models and got a .2 bump",
    "611603": "Do you have a reference for this?  I'm curious to learn more about the theoretical justification for blending. I keep hearing people reference the CLT, but standard forms of the CLT (like you'd find in a first probability course) don't seem applicable (but maybe I'm missing something obvious).  This sounds like a more promising justification.",
    "612811": "When I gain access to a computer next week, I'll post the equations. The general idea is as follows.\n\nWhen a model makes a prediction, it is either above true value (positive error) or below true value (negative error). If two models with `mae=x` and `mae=y` have postive error on every prediction then their ensemble has `mae=(x+y)/2` and ensemble does not help.\n\nBut if one model predicts a coupling with +1 error and another predicts with -1 error, then when you average the predictions together, the ensemble has zero error on that prediction.",
    "613310": "&gt;  weights 1/x and 1/y will increase mae.\n\nIt must be a bit different, as the weights should not be modified if I scale everything by a constant factor.",
    "613326": "cdeotte Interesting.  I'd love to look at the equations when you get some time.  Thanks!",
    "613335": "The equation for the sum of two random variates is\n\n$$Var(X1+X2)=Var(X1)+Var(X2)+2Cov(X1,X2)$$\n\nFrom this you can see that there's the biggest improvement to the error of the mean when two methods are completely uncorrelated. Specifically for the case variates following normal distributions, you can have a look at [this wikipedia page.](https://en.wikipedia.org/wiki/Sum_of_normally_distributed_random_variables)",
    "613346": "Lars, your analysis applies to mean squared error, not mae ;)",
    "613373": "Only if you assume normal distributed variates (which the latter link refers to). For Laplacian distributions, which usually resembles test errors better than normal distributions, you would get something more closely related to the MAEs. I highlighted Normal distributions since they tend to be a bit easier to understand and work with. @cdeotte might be thinking about some other sets of equations though.",
    "613382": "Laers, given you are active here I'm asking it here: why did you never answer Cédric Bény question about the coordinate system of shielding data?",
    "613561": "cpmpml Thanks for the correction. I meant multiply model one by `1/x` and multiply model two by `1/y` then divide by `1/x + 1/y`. So the weights are `y/(x+y)` and `x/(x+y)`.",
    "613596": "cpmpml Thanks for the reminder. I have made a response [over here.](https://www.kaggle.com/c/champs-scalar-coupling/discussion/99055613592)"
  },
  "source": "meta"
}