{
  "id": 82036,
  "title": "My simple trick for this competition",
  "url": "/competitions/elo-merchant-category-recommendation/discussion/82036",
  "author_name": "30CrMnSiA",
  "post_date": "2019-02-27T00:09:52.529000",
  "votes": 144,
  "comment_count": 72,
  "views": 0,
  "content": "<p>train['final'] = train['bin_predict']*(-33.21928)+(1-train['bin_predict'])*train['no_outlier']</p>\n\n<p>0.015 boost in local cv compare with same feature train directly</p>\n\n<p>I think this trick works because binary is better than regression even though metric is rmse when label is 1&amp;0</p>\n\n<p>like Kaza's post \n<a href=\"https://www.kaggle.com/c/avito-demand-prediction/discussion/59885\">https://www.kaggle.com/c/avito-demand-prediction/discussion/59885</a> \nthis competition is rmse too,but Kaza use xentropy as their objective</p>\n\n<p>add：\nClassifier AUC: 0.914 \nno outlier Regression CV:1.545</p>\n\n<p>the most important features for binary_predict from this post\n<a href=\"https://www.kaggle.com/c/home-credit-default-risk/discussion/64503#378162\">https://www.kaggle.com/c/home-credit-default-risk/discussion/64503#378162</a></p>",
  "messages": [
    {
      "id": 479038,
      "postDate": "2019-02-27T00:09:52.530Z",
      "content": "<p>train['final'] = train['bin_predict']*(-33.21928)+(1-train['bin_predict'])*train['no_outlier']</p>\n\n<p>0.015 boost in local cv compare with same feature train directly</p>\n\n<p>I think this trick works because binary is better than regression even though metric is rmse when label is 1&amp;0</p>\n\n<p>like Kaza's post \n<a href=\"https://www.kaggle.com/c/avito-demand-prediction/discussion/59885\">https://www.kaggle.com/c/avito-demand-prediction/discussion/59885</a> \nthis competition is rmse too,but Kaza use xentropy as their objective</p>\n\n<p>add：\nClassifier AUC: 0.914 \nno outlier Regression CV:1.545</p>\n\n<p>the most important features for binary_predict from this post\n<a href=\"https://www.kaggle.com/c/home-credit-default-risk/discussion/64503#378162\">https://www.kaggle.com/c/home-credit-default-risk/discussion/64503#378162</a></p>",
      "rawMarkdown": "train['final'] = train['bin_predict']*(-33.21928)+(1-train['bin_predict'])*train['no_outlier']\n\n0.015 boost in local cv compare with same feature train directly\n\nI think this trick works because binary is better than regression even though metric is rmse when label is 1&amp;0\n\nlike Kaza's post \nhttps://www.kaggle.com/c/avito-demand-prediction/discussion/59885 \nthis competition is rmse too,but Kaza use xentropy as their objective\n\nadd：\nClassifier AUC: 0.914 \nno outlier Regression CV:1.545\n\nthe most important features for binary_predict from this post\nhttps://www.kaggle.com/c/home-credit-default-risk/discussion/64503#378162",
      "votes": 144
    },
    {
      "id": 479046,
      "postDate": "2019-02-27T00:18:07.210Z",
      "content": "<p>I guess you mean </p>\n\n<p>P(outlier) * (-33.21928) + (1 - P(outlier)) * (value predicted by regression model)</p>\n\n<p>where P(outlier) is the probability given by a binary classifier. </p>",
      "rawMarkdown": "I guess you mean \n\nP(outlier) * (-33.21928) + (1 - P(outlier)) * (value predicted by regression model)\n\nwhere P(outlier) is the probability given by a binary classifier. ",
      "votes": 16,
      "replies": [
        {
          "id": 479353,
          "postDate": "2019-02-27T04:57:56.527Z",
          "content": "<p>Thanks for labelling.</p>",
          "rawMarkdown": "Thanks for labelling."
        }
      ]
    },
    {
      "id": 480907,
      "postDate": "2019-02-28T20:48:10.190Z",
      "content": "<p>Possible.</p>",
      "rawMarkdown": "Possible.",
      "votes": 9
    },
    {
      "id": 479065,
      "postDate": "2019-02-27T00:35:04.003Z",
      "content": "<p>is it the shortest write-up ever written ?</p>",
      "rawMarkdown": "is it the shortest write-up ever written ?",
      "votes": 5
    },
    {
      "id": 479549,
      "postDate": "2019-02-27T08:33:34.757Z",
      "content": "<p>Congrats for your winning. I think this kind of trick was used by many top teams. I mean, linearly stacking binary preds and regression preds without outliers. Your score is way ahead of rest of the top teams and I believe in that you might did some other stuff that we missed as well. (like some boosting smart features etc.)</p>\n\n<p>So, I hope, this won't be the only sharing coming from you :)</p>",
      "rawMarkdown": "Congrats for your winning. I think this kind of trick was used by many top teams. I mean, linearly stacking binary preds and regression preds without outliers. Your score is way ahead of rest of the top teams and I believe in that you might did some other stuff that we missed as well. (like some boosting smart features etc.)\n\nSo, I hope, this won't be the only sharing coming from you :)",
      "votes": 3,
      "replies": [
        {
          "id": 479778,
          "postDate": "2019-02-27T12:22:41.877Z",
          "content": "<p>the most important features  from this post\n <a href=\"https://www.kaggle.com/c/home-credit-default-risk/discussion/64503#378162\">https://www.kaggle.com/c/home-credit-default-risk/discussion/64503#378162</a></p>",
          "rawMarkdown": "the most important features  from this post\n https://www.kaggle.com/c/home-credit-default-risk/discussion/64503#378162",
          "votes": 4
        },
        {
          "id": 480106,
          "postDate": "2019-02-27T19:30:56.087Z",
          "content": "<p>@30CrMnSiA \nCan you ellaborate how you implemented these features in this competition?\nI'm not familiar with home-credit and after reading this post i couldn't understand how it is implemented in current competition.</p>\n\n<p>Would greatly appreciate your insight,\nThanks!</p>",
          "rawMarkdown": "@30CrMnSiA \nCan you ellaborate how you implemented these features in this competition?\nI'm not familiar with home-credit and after reading this post i couldn't understand how it is implemented in current competition.\n\nWould greatly appreciate your insight,\nThanks!",
          "votes": 3
        },
        {
          "id": 480295,
          "postDate": "2019-02-28T02:37:41.863Z",
          "content": "<p>@30CrMnSiA wait your reply, thank you!</p>",
          "rawMarkdown": "@30CrMnSiA wait your reply, thank you!"
        }
      ]
    },
    {
      "id": 479057,
      "postDate": "2019-02-27T00:27:17.463Z",
      "content": "<p>I did the same too! I also tried running kNN with training_y = binary(outlier or not) and X = (binary classifier output) in an attempt to adjust the outlier classifier's output. At the end the raw classifier output works best. Congratulations!</p>",
      "rawMarkdown": "I did the same too! I also tried running kNN with training_y = binary(outlier or not) and X = (binary classifier output) in an attempt to adjust the outlier classifier's output. At the end the raw classifier output works best. Congratulations!",
      "votes": 4,
      "replies": [
        {
          "id": 1647320,
          "postDate": "2022-01-12T13:48:23.680Z",
          "content": "<p>yes, I tried with LGBM too and it did not work.<br>\nmaybe I have to try with different features.</p>",
          "rawMarkdown": "yes, I tried with LGBM too and it did not work.\nmaybe I have to try with different features."
        }
      ]
    },
    {
      "id": 482310,
      "postDate": "2019-03-02T17:28:03.653Z",
      "content": "<p>就和你差了个(1-train['binpredict'])\n我写的train['final'] = train'binpredict'+train['no_outlier']\n诶，没考虑仔细</p>",
      "rawMarkdown": "就和你差了个(1-train['binpredict'])\n我写的train['final'] = train['binpredict'](-33.21928)+train['no_outlier']\n诶，没考虑仔细",
      "votes": 1
    },
    {
      "id": 479770,
      "postDate": "2019-02-27T12:13:39.303Z",
      "content": "<p>I have just tried this trick on my model with late submission, and it does not work well for me. </p>\n\n<blockquote>\n  <p>train['final'] = train'binpredict'+(1-train['binpredict'])train['no_outlier']</p>\n</blockquote>\n\n<p>I have tried the followiing two understandings:</p>\n\n<p><strong>1.</strong></p>\n\n<pre><code>no_oulier_sub.target*(1-df_outlier_prob.out_prob)-33.21928*df_outlier_prob.out_prob\n</code></pre>\n\n<p>This performs well on the public leaderboard, with 3.681, but a bad performance on the private leaderboard , with 3.611.</p>\n\n<p><strong>2.</strong></p>\n\n<pre><code>no_oulier_sub.loc[outlier_prob.index, 'target'] = -33.21928*outlier_prob['out_prob']\nno_oulier_sub.loc[inlier_prob.index, 'target'] = (1-inlier_prob['out_prob'])*no_oulier_sub.loc[inlier_prob.index, 'target']\n</code></pre>\n\n<p>where outlier_prob selects the highest 25000 probilities of the test data. This gets a bad performance on both public and private leaderboard, with 3.711 and 3.640. </p>\n\n<p>But still thanks for your sharing. Maybe it will work in my future model:)</p>",
      "rawMarkdown": "I have just tried this trick on my model with late submission, and it does not work well for me. \n\n&gt; train['final'] = train['binpredict'](-33.21928)+(1-train['binpredict'])train['no_outlier']\n\nI have tried the followiing two understandings:\n\n**1.**\n\n    no_oulier_sub.target*(1-df_outlier_prob.out_prob)-33.21928*df_outlier_prob.out_prob\n\nThis performs well on the public leaderboard, with 3.681, but a bad performance on the private leaderboard , with 3.611.\n\n**2.**\n\n    no_oulier_sub.loc[outlier_prob.index, 'target'] = -33.21928*outlier_prob['out_prob']\n    no_oulier_sub.loc[inlier_prob.index, 'target'] = (1-inlier_prob['out_prob'])*no_oulier_sub.loc[inlier_prob.index, 'target']\n\nwhere outlier_prob selects the highest 25000 probilities of the test data. This gets a bad performance on both public and private leaderboard, with 3.711 and 3.640. \n\nBut still thanks for your sharing. Maybe it will work in my future model:)",
      "votes": 1,
      "replies": [
        {
          "id": 479776,
          "postDate": "2019-02-27T12:19:46.317Z",
          "content": "<p>maybe your  feature is not fit for outlier Classifier.\nmy outlier Classifier is 0.914</p>",
          "rawMarkdown": "maybe your  feature is not fit for outlier Classifier.\nmy outlier Classifier is 0.914",
          "votes": 3
        },
        {
          "id": 480027,
          "postDate": "2019-02-27T17:35:33.867Z",
          "content": "<p>Yes, I agree. If the outlier classifier is not good enough, the CV&amp;PB error from the \"model without outliers\" will be huge.</p>\n\n<p>That's why I came up with a (relatively more stable but with less improvment) modified stacking method to simulate the error \"inheriting\" from the outlier classifier to the \"model without outliers\".</p>\n\n<p><a href=\"https://www.kaggle.com/c/elo-merchant-category-recommendation/discussion/82166\">https://www.kaggle.com/c/elo-merchant-category-recommendation/discussion/82166</a></p>",
          "rawMarkdown": "Yes, I agree. If the outlier classifier is not good enough, the CV&amp;PB error from the \"model without outliers\" will be huge.\n\nThat's why I came up with a (relatively more stable but with less improvment) modified stacking method to simulate the error \"inheriting\" from the outlier classifier to the \"model without outliers\".\n\nhttps://www.kaggle.com/c/elo-merchant-category-recommendation/discussion/82166\n",
          "votes": 3
        },
        {
          "id": 480310,
          "postDate": "2019-02-28T03:24:41.190Z",
          "content": "<p>Hi @30CrMnSiA, Congratulations! Your classifier's AUC is 0.914, It's much better than our's, could you please tells us about your classifier model? How many features and what's the model and parameters?</p>",
          "rawMarkdown": "Hi @30CrMnSiA, Congratulations! Your classifier's AUC is 0.914, It's much better than our's, could you please tells us about your classifier model? How many features and what's the model and parameters?",
          "votes": 2
        },
        {
          "id": 480477,
          "postDate": "2019-02-28T08:27:33.533Z",
          "content": "<p>very curious about classifier of AUC 0.914</p>",
          "rawMarkdown": "very curious about classifier of AUC 0.914"
        },
        {
          "id": 480666,
          "postDate": "2019-02-28T14:01:09.247Z",
          "content": "<p>I think it would be the similar trick in the home credit competition that he posted the link above. Use outlier or not as target for historical transaction, then make the prediction for each transactions. The output is like \"what is the probability of a certain previous transaction belongs to someone who has been outlier currently\". Then aggregate back this prob to cardid. These would be very strong features.</p>",
          "rawMarkdown": "I think it would be the similar trick in the home credit competition that he posted the link above. Use outlier or not as target for historical transaction, then make the prediction for each transactions. The output is like \"what is the probability of a certain previous transaction belongs to someone who has been outlier currently\". Then aggregate back this prob to cardid. These would be very strong features.",
          "votes": 8
        },
        {
          "id": 480692,
          "postDate": "2019-02-28T14:28:45.320Z",
          "content": "<p>Thanks @KALE,\nI read the link, but even after your explanation i can't quite understand it O_O\nCan you maybe give a short example?\nThat would be awesome!</p>\n\n<p>Thanks!</p>",
          "rawMarkdown": "Thanks @KALE,\nI read the link, but even after your explanation i can't quite understand it O_O\nCan you maybe give a short example?\nThat would be awesome!\n\nThanks!"
        },
        {
          "id": 480705,
          "postDate": "2019-02-28T14:47:15.790Z",
          "content": "<p>It should be also similar to senkin's Transaction-based Model. In senkin's post, he merged train's target to each transaction row, then create a lightgbm to output each transaction's meta feature, then groupby cardid's min/sum to create cardid's meta feature. Here, use outlier or not (0/1) as target for outlier model, create transaction meta feature, then groupby cardid.</p>",
          "rawMarkdown": "It should be also similar to senkin's Transaction-based Model. In senkin's post, he merged train's target to each transaction row, then create a lightgbm to output each transaction's meta feature, then groupby cardid's min/sum to create cardid's meta feature. Here, use outlier or not (0/1) as target for outlier model, create transaction meta feature, then groupby cardid.",
          "votes": 3
        },
        {
          "id": 480713,
          "postDate": "2019-02-28T15:05:55.090Z",
          "content": "<p>thank for kale‘explanation，i’m poor in English，kale is right</p>",
          "rawMarkdown": "thank for kale‘explanation，i’m poor in English，kale is right",
          "votes": 4
        },
        {
          "id": 480839,
          "postDate": "2019-02-28T18:35:57.860Z",
          "content": "<p>Great explanation, thanks a lot! </p>\n\n<p>What features are used in the transaction level model, just the raw features of historical transactions? And how about the new transactions, are they used in the same way as historical ones?</p>",
          "rawMarkdown": "Great explanation, thanks a lot! \n\nWhat features are used in the transaction level model, just the raw features of historical transactions? And how about the new transactions, are they used in the same way as historical ones?"
        },
        {
          "id": 481063,
          "postDate": "2019-03-01T02:34:23.527Z",
          "content": "<p>It's still very hard for me to understand clearly(especially in English), and I have send a message to you in Chinese about my doubts. Looking forward to your reply.</p>",
          "rawMarkdown": "It's still very hard for me to understand clearly(especially in English), and I have send a message to you in Chinese about my doubts. Looking forward to your reply."
        }
      ]
    },
    {
      "id": 479168,
      "postDate": "2019-02-27T02:01:03.200Z",
      "content": "<p>I think this  trick works because binary is better than regression even though metric is rmse when label is 1&amp;0</p>\n\n<p>like Kaza's post \n<a href=\"https://www.kaggle.com/c/avito-demand-prediction/discussion/59885\">https://www.kaggle.com/c/avito-demand-prediction/discussion/59885</a> \nthis competition is rmse too,but Kaza use xentropy as their  objective</p>",
      "rawMarkdown": "I think this  trick works because binary is better than regression even though metric is rmse when label is 1&amp;0\n\nlike Kaza's post \nhttps://www.kaggle.com/c/avito-demand-prediction/discussion/59885 \nthis competition is rmse too,but Kaza use xentropy as their  objective",
      "votes": 1
    },
    {
      "id": 479082,
      "postDate": "2019-02-27T00:50:25.793Z",
      "content": "<p>Good job,  Congrats!</p>",
      "rawMarkdown": "Good job,  Congrats!",
      "votes": 1
    },
    {
      "id": 479071,
      "postDate": "2019-02-27T00:41:51.710Z",
      "content": "<p>Congrats!!</p>\n\n<p>Hope to see a kernel explaining the solution. In the meantime, can someone please explain what these operations mean and why is it important?</p>",
      "rawMarkdown": "Congrats!!\n\nHope to see a kernel explaining the solution. In the meantime, can someone please explain what these operations mean and why is it important?",
      "votes": 1,
      "replies": [
        {
          "id": 479088,
          "postDate": "2019-02-27T00:53:16.747Z",
          "content": "<p>^ Xuan Cao and CPMP explained it.</p>",
          "rawMarkdown": "^ Xuan Cao and CPMP explained it."
        },
        {
          "id": 479110,
          "postDate": "2019-02-27T01:12:07.707Z",
          "content": "<p>Thanks</p>",
          "rawMarkdown": "Thanks"
        }
      ]
    },
    {
      "id": 479060,
      "postDate": "2019-02-27T00:28:59.263Z",
      "content": "<p>Congratulations for being in the first place! I have also tried that strategy but sadly in my case it didnt help boost cv..</p>",
      "rawMarkdown": "Congratulations for being in the first place! I have also tried that strategy but sadly in my case it didnt help boost cv..",
      "votes": 1
    },
    {
      "id": 479058,
      "postDate": "2019-02-27T00:27:46.050Z",
      "content": "<p>This reminds me of the approach Heng Cherkeng used in TGS: He too suggested to train a classifier to handle outliers, and using it as a gatekeeper for final prediction.  I actually though of it when I entered ELO, but did not think of it anymore until I read your post.  We were wondering what we were missing, and this is probably it.  Thanks for having shared so fast.</p>",
      "rawMarkdown": "This reminds me of the approach Heng Cherkeng used in TGS: He too suggested to train a classifier to handle outliers, and using it as a gatekeeper for final prediction.  I actually though of it when I entered ELO, but did not think of it anymore until I read your post.  We were wondering what we were missing, and this is probably it.  Thanks for having shared so fast.",
      "votes": 1
    },
    {
      "id": 489417,
      "postDate": "2019-03-13T22:03:33.730Z",
      "content": "<p>Ya priness renaissance kak Medici</p>",
      "rawMarkdown": "Ya priness renaissance kak Medici"
    },
    {
      "id": 481171,
      "postDate": "2019-03-01T05:34:13.133Z",
      "content": "<p>Nice trick!</p>",
      "rawMarkdown": "Nice trick!"
    },
    {
      "id": 480896,
      "postDate": "2019-02-28T20:34:15.057Z",
      "content": "<p>Big congrats! That's a nice trick!</p>",
      "rawMarkdown": "Big congrats! That's a nice trick!"
    },
    {
      "id": 480841,
      "postDate": "2019-02-28T18:36:55.870Z",
      "content": "<p>Congrats!! </p>",
      "rawMarkdown": "Congrats!! "
    },
    {
      "id": 480416,
      "postDate": "2019-02-28T06:32:58.707Z",
      "content": "<p>Could you please show more details? Thanks.</p>",
      "rawMarkdown": "Could you please show more details? Thanks."
    },
    {
      "id": 480159,
      "postDate": "2019-02-27T21:04:04.153Z",
      "content": "<p>congratulations!!</p>\n\n<p>I surprised that such a simple feature boosted 0.015 in local cv. Great!\nI think your great work is to have made the high precision outlier classifier (0.914).\nWhen I made it, it didn't work.It was bad classifier.\nIf you can, tell us about it (how to make of good classifier for this competition).</p>\n\n<p>Thank you for your sharing.</p>",
      "rawMarkdown": "congratulations!!\n\nI surprised that such a simple feature boosted 0.015 in local cv. Great!\nI think your great work is to have made the high precision outlier classifier (0.914).\nWhen I made it, it didn't work.It was bad classifier.\nIf you can, tell us about it (how to make of good classifier for this competition).\n\nThank you for your sharing."
    },
    {
      "id": 480023,
      "postDate": "2019-02-27T17:34:11.330Z",
      "content": "<p>Congrats...</p>",
      "rawMarkdown": "Congrats..."
    },
    {
      "id": 479979,
      "postDate": "2019-02-27T16:36:24.977Z",
      "content": "<p>Congratulations on winning and thanks for sharing... one thing i don't understand clearly - did you train your regression model on data without outliers? did you include those without any new merchant transactions?</p>",
      "rawMarkdown": "Congratulations on winning and thanks for sharing... one thing i don't understand clearly - did you train your regression model on data without outliers? did you include those without any new merchant transactions?"
    },
    {
      "id": 479715,
      "postDate": "2019-02-27T11:06:51.053Z",
      "content": "<p>Hi,\nWhat was your Logloss\\AUC for the binary classification? \nand the RMSE for the regression without outlier?</p>\n\n<p>I tried this now on my model with late submission and result is good but not awesome.\nMy Classifier Logloss: 0.0435, AUC: 0.908~\nRegression CV:1.544</p>\n\n<p>Thanks!!</p>",
      "rawMarkdown": "Hi,\nWhat was your Logloss\\AUC for the binary classification? \nand the RMSE for the regression without outlier?\n\nI tried this now on my model with late submission and result is good but not awesome.\nMy Classifier Logloss: 0.0435, AUC: 0.908~\nRegression CV:1.544\n\nThanks!!",
      "replies": [
        {
          "id": 479772,
          "postDate": "2019-02-27T12:16:01.170Z",
          "content": "<p>Classifier AUC: 0.914 \nno outlier Regression CV:1.545</p>",
          "rawMarkdown": "Classifier AUC: 0.914 \nno outlier Regression CV:1.545"
        }
      ]
    },
    {
      "id": 479618,
      "postDate": "2019-02-27T09:35:56.917Z",
      "content": "<p>Congrats! Nice trick!!</p>",
      "rawMarkdown": "Congrats! Nice trick!!"
    },
    {
      "id": 479482,
      "postDate": "2019-02-27T07:23:20.970Z",
      "content": "<p><a href=\"/h4211819\">@h4211819</a>, congrats for getting first and thanks for sharing this. </p>",
      "rawMarkdown": "@h4211819, congrats for getting first and thanks for sharing this. "
    },
    {
      "id": 479387,
      "postDate": "2019-02-27T05:28:42.567Z",
      "content": "<p>Congratulations !!! Smart shot !!!</p>",
      "rawMarkdown": "Congratulations !!! Smart shot !!!"
    },
    {
      "id": 479352,
      "postDate": "2019-02-27T04:57:40.603Z",
      "content": "<p>Congrats!</p>",
      "rawMarkdown": "Congrats!"
    },
    {
      "id": 479335,
      "postDate": "2019-02-27T04:30:57.247Z",
      "content": "<p>Congrats..</p>",
      "rawMarkdown": "Congrats.."
    },
    {
      "id": 479294,
      "postDate": "2019-02-27T03:49:10.980Z",
      "content": "<p>Congrats! </p>",
      "rawMarkdown": "Congrats! "
    },
    {
      "id": 479253,
      "postDate": "2019-02-27T03:13:23.057Z",
      "content": "<p>Congrats!\nI set outlier to 0 for 'no outlier' model. My final result is 'binary prob' * -33.. + 'no outlier predict'.\nYour trick is better, I guess. Because the normal value and outlier are not the same distribution.</p>",
      "rawMarkdown": "Congrats!\nI set outlier to 0 for 'no outlier' model. My final result is 'binary prob' * -33.. + 'no outlier predict'.\nYour trick is better, I guess. Because the normal value and outlier are not the same distribution."
    },
    {
      "id": 479211,
      "postDate": "2019-02-27T02:48:10.967Z",
      "content": "<p>Great work! Congratulation! </p>",
      "rawMarkdown": "Great work! Congratulation! "
    },
    {
      "id": 479149,
      "postDate": "2019-02-27T01:44:54.670Z",
      "content": "<p>Congrats! Perfect formula!</p>",
      "rawMarkdown": "Congrats! Perfect formula!"
    },
    {
      "id": 479139,
      "postDate": "2019-02-27T01:36:55.130Z",
      "content": "<p>Congrats</p>",
      "rawMarkdown": "Congrats"
    },
    {
      "id": 479124,
      "postDate": "2019-02-27T01:21:22.870Z",
      "content": "<p>One shot to kill, straight to the heart. Congratulations and thanks for sharing</p>",
      "rawMarkdown": "One shot to kill, straight to the heart. Congratulations and thanks for sharing"
    },
    {
      "id": 479117,
      "postDate": "2019-02-27T01:17:35.740Z",
      "content": "<p>Good Job and thanks for sharing this small and quick secret.</p>",
      "rawMarkdown": "Good Job and thanks for sharing this small and quick secret."
    },
    {
      "id": 479105,
      "postDate": "2019-02-27T01:07:55.507Z",
      "content": "<p>Congrats!\nFor <code>RMSE</code> metric, the weighted mean is absolutely better than manual setting. The public LB(30% of test) definitely has more outliers which makes manual setting get PLB improve. Many of us overfit the public LB.</p>",
      "rawMarkdown": "Congrats!\nFor `RMSE` metric, the weighted mean is absolutely better than manual setting. The public LB(30% of test) definitely has more outliers which makes manual setting get PLB improve. Many of us overfit the public LB."
    },
    {
      "id": 479099,
      "postDate": "2019-02-27T01:01:30.970Z",
      "content": "<p><a href=\"/h4211819\">@h4211819</a>, congrats and thanks for sharing this neat trick. I wish I have thought of it myself :-)</p>\n\n<p>Here is my post on feature selection techniques <a href=\"https://www.kaggle.com/c/elo-merchant-category-recommendation/discussion/82052\">https://www.kaggle.com/c/elo-merchant-category-recommendation/discussion/82052</a></p>",
      "rawMarkdown": "@h4211819, congrats and thanks for sharing this neat trick. I wish I have thought of it myself :-)\n\nHere is my post on feature selection techniques https://www.kaggle.com/c/elo-merchant-category-recommendation/discussion/82052"
    },
    {
      "id": 479096,
      "postDate": "2019-02-27T00:57:09.817Z",
      "content": "<p>Congrats</p>",
      "rawMarkdown": "Congrats"
    },
    {
      "id": 479076,
      "postDate": "2019-02-27T00:46:16.027Z",
      "content": "<p>great work！congrats~</p>",
      "rawMarkdown": "great work！congrats~"
    },
    {
      "id": 479069,
      "postDate": "2019-02-27T00:41:41.153Z",
      "content": "<p>that's amazing...</p>",
      "rawMarkdown": "that's amazing..."
    },
    {
      "id": 479064,
      "postDate": "2019-02-27T00:34:52.857Z",
      "content": "<p>how many feature  you take in the end</p>",
      "rawMarkdown": "how many feature  you take in the end"
    },
    {
      "id": 479054,
      "postDate": "2019-02-27T00:24:46.120Z",
      "content": "<p>Congrats, nice trick.</p>",
      "rawMarkdown": "Congrats, nice trick."
    },
    {
      "id": 479052,
      "postDate": "2019-02-27T00:23:43.603Z",
      "content": "<p>Congratulations!!!</p>",
      "rawMarkdown": "Congratulations!!!"
    },
    {
      "id": 479048,
      "postDate": "2019-02-27T00:20:11.213Z",
      "content": "<p>Good job, I wish I would've thought of that! :)</p>",
      "rawMarkdown": "Good job, I wish I would've thought of that! :)"
    },
    {
      "id": 479042,
      "postDate": "2019-02-27T00:13:50.247Z",
      "content": "<p>Congrats on the win! (by a large margin!) I started using something similar to this trick but got caught up in chasing public leaderboard and began ignoring local CV in the frustration with this data. Lesson learned and thank you for sharing. </p>",
      "rawMarkdown": "Congrats on the win! (by a large margin!) I started using something similar to this trick but got caught up in chasing public leaderboard and began ignoring local CV in the frustration with this data. Lesson learned and thank you for sharing. ",
      "replies": [
        {
          "id": 479062,
          "postDate": "2019-02-27T00:32:32.703Z",
          "content": "<p>man, same here. i didn't trust cv at last minute and fell hard. But lesson learnt.</p>",
          "rawMarkdown": "man, same here. i didn't trust cv at last minute and fell hard. But lesson learnt."
        }
      ]
    },
    {
      "id": 479040,
      "postDate": "2019-02-27T00:12:45.980Z",
      "content": "<p>Congrats!</p>\n\n<p>What are these <code>binpredict</code> and <code>no_outlier</code> ?</p>",
      "rawMarkdown": "Congrats!\n\nWhat are these `binpredict` and `no_outlier` ?",
      "replies": [
        {
          "id": 479047,
          "postDate": "2019-02-27T00:19:29.520Z",
          "content": "<p>It seems that binpredict is an outlier classifier while no_outlier is a model trained without outliers.</p>",
          "rawMarkdown": "It seems that binpredict is an outlier classifier while no_outlier is a model trained without outliers.",
          "votes": 4
        },
        {
          "id": 479049,
          "postDate": "2019-02-27T00:20:35.223Z",
          "content": "<p>I think binpredict is the probability of outliers from classification model. it's like add percantage of -33.219 instead of directly replace predicted outlier with -33.219.</p>",
          "rawMarkdown": "I think binpredict is the probability of outliers from classification model. it's like add percantage of -33.219 instead of directly replace predicted outlier with -33.219."
        }
      ]
    },
    {
      "id": 2683991,
      "postDate": "2024-03-06T10:24:49.140Z",
      "rawMarkdown": "",
      "isDeleted": true
    },
    {
      "id": 480221,
      "postDate": "2019-02-28T00:04:17.383Z",
      "rawMarkdown": "",
      "votes": -1,
      "isDeleted": true
    },
    {
      "id": 479800,
      "postDate": "2019-02-27T12:40:08.240Z",
      "rawMarkdown": "",
      "isDeleted": true
    },
    {
      "id": 479039,
      "postDate": "2019-02-27T00:11:15.983Z",
      "rawMarkdown": "",
      "isDeleted": true
    },
    {
      "id": 482520,
      "postDate": "2019-03-03T06:19:49.100Z",
      "content": "<p>Thanks for sharing ! :)</p>",
      "rawMarkdown": "Thanks for sharing ! :)"
    },
    {
      "id": 479829,
      "postDate": "2019-02-27T13:25:14.533Z",
      "content": "<p>Congratulations and thanks for sharing!</p>",
      "rawMarkdown": "Congratulations and thanks for sharing!"
    },
    {
      "id": 479283,
      "postDate": "2019-02-27T03:37:44.613Z",
      "content": "<p>nice idea. thanks for sharing</p>",
      "rawMarkdown": "nice idea. thanks for sharing"
    }
  ],
  "comments": [
    {
      "id": 479046,
      "author_name": "Xuan Cao",
      "author_url": "",
      "post_date": "2019-02-27T00:18:07.210000",
      "content": "<p>I guess you mean </p>\n\n<p>P(outlier) * (-33.21928) + (1 - P(outlier)) * (value predicted by regression model)</p>\n\n<p>where P(outlier) is the probability given by a binary classifier. </p>",
      "votes": 16,
      "replies": [
        {
          "id": 479353,
          "author_name": "htts001",
          "author_url": "",
          "post_date": "2019-02-27T04:57:56.527000",
          "content": "<p>Thanks for labelling.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 480907,
      "author_name": "siddharth",
      "author_url": "",
      "post_date": "2019-02-28T20:48:10.190000",
      "content": "<p>Possible.</p>",
      "votes": 9,
      "replies": []
    },
    {
      "id": 479065,
      "author_name": "eagle4",
      "author_url": "",
      "post_date": "2019-02-27T00:35:04.003000",
      "content": "<p>is it the shortest write-up ever written ?</p>",
      "votes": 5,
      "replies": []
    },
    {
      "id": 479549,
      "author_name": "Fatih Öztürk",
      "author_url": "",
      "post_date": "2019-02-27T08:33:34.757000",
      "content": "<p>Congrats for your winning. I think this kind of trick was used by many top teams. I mean, linearly stacking binary preds and regression preds without outliers. Your score is way ahead of rest of the top teams and I believe in that you might did some other stuff that we missed as well. (like some boosting smart features etc.)</p>\n\n<p>So, I hope, this won't be the only sharing coming from you :)</p>",
      "votes": 3,
      "replies": [
        {
          "id": 479778,
          "author_name": "30CrMnSiA",
          "author_url": "",
          "post_date": "2019-02-27T12:22:41.877000",
          "content": "<p>the most important features  from this post\n <a href=\"https://www.kaggle.com/c/home-credit-default-risk/discussion/64503#378162\">https://www.kaggle.com/c/home-credit-default-risk/discussion/64503#378162</a></p>",
          "votes": 4,
          "replies": []
        },
        {
          "id": 480106,
          "author_name": "AmirH",
          "author_url": "",
          "post_date": "2019-02-27T19:30:56.087000",
          "content": "<p>@30CrMnSiA \nCan you ellaborate how you implemented these features in this competition?\nI'm not familiar with home-credit and after reading this post i couldn't understand how it is implemented in current competition.</p>\n\n<p>Would greatly appreciate your insight,\nThanks!</p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 480295,
          "author_name": "Jianfei Wang",
          "author_url": "",
          "post_date": "2019-02-28T02:37:41.863000",
          "content": "<p>@30CrMnSiA wait your reply, thank you!</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 479057,
      "author_name": "tom124",
      "author_url": "",
      "post_date": "2019-02-27T00:27:17.463000",
      "content": "<p>I did the same too! I also tried running kNN with training_y = binary(outlier or not) and X = (binary classifier output) in an attempt to adjust the outlier classifier's output. At the end the raw classifier output works best. Congratulations!</p>",
      "votes": 4,
      "replies": [
        {
          "id": 1647320,
          "author_name": "Narender Reddy",
          "author_url": "",
          "post_date": "2022-01-12T13:48:23.680000",
          "content": "<p>yes, I tried with LGBM too and it did not work.<br>\nmaybe I have to try with different features.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 482310,
      "author_name": "Camp",
      "author_url": "",
      "post_date": "2019-03-02T17:28:03.653000",
      "content": "<p>就和你差了个(1-train['binpredict'])\n我写的train['final'] = train'binpredict'+train['no_outlier']\n诶，没考虑仔细</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 479770,
      "author_name": "Boatin",
      "author_url": "",
      "post_date": "2019-02-27T12:13:39.303000",
      "content": "<p>I have just tried this trick on my model with late submission, and it does not work well for me. </p>\n\n<blockquote>\n  <p>train['final'] = train'binpredict'+(1-train['binpredict'])train['no_outlier']</p>\n</blockquote>\n\n<p>I have tried the followiing two understandings:</p>\n\n<p><strong>1.</strong></p>\n\n<pre><code>no_oulier_sub.target*(1-df_outlier_prob.out_prob)-33.21928*df_outlier_prob.out_prob\n</code></pre>\n\n<p>This performs well on the public leaderboard, with 3.681, but a bad performance on the private leaderboard , with 3.611.</p>\n\n<p><strong>2.</strong></p>\n\n<pre><code>no_oulier_sub.loc[outlier_prob.index, 'target'] = -33.21928*outlier_prob['out_prob']\nno_oulier_sub.loc[inlier_prob.index, 'target'] = (1-inlier_prob['out_prob'])*no_oulier_sub.loc[inlier_prob.index, 'target']\n</code></pre>\n\n<p>where outlier_prob selects the highest 25000 probilities of the test data. This gets a bad performance on both public and private leaderboard, with 3.711 and 3.640. </p>\n\n<p>But still thanks for your sharing. Maybe it will work in my future model:)</p>",
      "votes": 1,
      "replies": [
        {
          "id": 479776,
          "author_name": "30CrMnSiA",
          "author_url": "",
          "post_date": "2019-02-27T12:19:46.317000",
          "content": "<p>maybe your  feature is not fit for outlier Classifier.\nmy outlier Classifier is 0.914</p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 480027,
          "author_name": "Anthony Chiu",
          "author_url": "",
          "post_date": "2019-02-27T17:35:33.867000",
          "content": "<p>Yes, I agree. If the outlier classifier is not good enough, the CV&amp;PB error from the \"model without outliers\" will be huge.</p>\n\n<p>That's why I came up with a (relatively more stable but with less improvment) modified stacking method to simulate the error \"inheriting\" from the outlier classifier to the \"model without outliers\".</p>\n\n<p><a href=\"https://www.kaggle.com/c/elo-merchant-category-recommendation/discussion/82166\">https://www.kaggle.com/c/elo-merchant-category-recommendation/discussion/82166</a></p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 480310,
          "author_name": "Zhuang Jia",
          "author_url": "",
          "post_date": "2019-02-28T03:24:41.190000",
          "content": "<p>Hi @30CrMnSiA, Congratulations! Your classifier's AUC is 0.914, It's much better than our's, could you please tells us about your classifier model? How many features and what's the model and parameters?</p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 480477,
          "author_name": "Manchoi",
          "author_url": "",
          "post_date": "2019-02-28T08:27:33.533000",
          "content": "<p>very curious about classifier of AUC 0.914</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 480666,
          "author_name": "KALE",
          "author_url": "",
          "post_date": "2019-02-28T14:01:09.247000",
          "content": "<p>I think it would be the similar trick in the home credit competition that he posted the link above. Use outlier or not as target for historical transaction, then make the prediction for each transactions. The output is like \"what is the probability of a certain previous transaction belongs to someone who has been outlier currently\". Then aggregate back this prob to cardid. These would be very strong features.</p>",
          "votes": 8,
          "replies": []
        },
        {
          "id": 480692,
          "author_name": "AmirH",
          "author_url": "",
          "post_date": "2019-02-28T14:28:45.320000",
          "content": "<p>Thanks @KALE,\nI read the link, but even after your explanation i can't quite understand it O_O\nCan you maybe give a short example?\nThat would be awesome!</p>\n\n<p>Thanks!</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 480705,
          "author_name": "KALE",
          "author_url": "",
          "post_date": "2019-02-28T14:47:15.790000",
          "content": "<p>It should be also similar to senkin's Transaction-based Model. In senkin's post, he merged train's target to each transaction row, then create a lightgbm to output each transaction's meta feature, then groupby cardid's min/sum to create cardid's meta feature. Here, use outlier or not (0/1) as target for outlier model, create transaction meta feature, then groupby cardid.</p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 480713,
          "author_name": "30CrMnSiA",
          "author_url": "",
          "post_date": "2019-02-28T15:05:55.090000",
          "content": "<p>thank for kale‘explanation，i’m poor in English，kale is right</p>",
          "votes": 4,
          "replies": []
        },
        {
          "id": 480839,
          "author_name": "lucaskg",
          "author_url": "",
          "post_date": "2019-02-28T18:35:57.860000",
          "content": "<p>Great explanation, thanks a lot! </p>\n\n<p>What features are used in the transaction level model, just the raw features of historical transactions? And how about the new transactions, are they used in the same way as historical ones?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 481063,
          "author_name": "Manchoi",
          "author_url": "",
          "post_date": "2019-03-01T02:34:23.527000",
          "content": "<p>It's still very hard for me to understand clearly(especially in English), and I have send a message to you in Chinese about my doubts. Looking forward to your reply.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 479168,
      "author_name": "30CrMnSiA",
      "author_url": "",
      "post_date": "2019-02-27T02:01:03.200000",
      "content": "<p>I think this  trick works because binary is better than regression even though metric is rmse when label is 1&amp;0</p>\n\n<p>like Kaza's post \n<a href=\"https://www.kaggle.com/c/avito-demand-prediction/discussion/59885\">https://www.kaggle.com/c/avito-demand-prediction/discussion/59885</a> \nthis competition is rmse too,but Kaza use xentropy as their  objective</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 479082,
      "author_name": "JM100",
      "author_url": "",
      "post_date": "2019-02-27T00:50:25.793000",
      "content": "<p>Good job,  Congrats!</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 479071,
      "author_name": "Sreedevi Sasidharan",
      "author_url": "",
      "post_date": "2019-02-27T00:41:51.710000",
      "content": "<p>Congrats!!</p>\n\n<p>Hope to see a kernel explaining the solution. In the meantime, can someone please explain what these operations mean and why is it important?</p>",
      "votes": 1,
      "replies": [
        {
          "id": 479088,
          "author_name": "Ren",
          "author_url": "",
          "post_date": "2019-02-27T00:53:16.747000",
          "content": "<p>^ Xuan Cao and CPMP explained it.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 479110,
          "author_name": "Sreedevi Sasidharan",
          "author_url": "",
          "post_date": "2019-02-27T01:12:07.707000",
          "content": "<p>Thanks</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 479060,
      "author_name": "YoonSoo",
      "author_url": "",
      "post_date": "2019-02-27T00:28:59.263000",
      "content": "<p>Congratulations for being in the first place! I have also tried that strategy but sadly in my case it didnt help boost cv..</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 479058,
      "author_name": "CPMP",
      "author_url": "",
      "post_date": "2019-02-27T00:27:46.050000",
      "content": "<p>This reminds me of the approach Heng Cherkeng used in TGS: He too suggested to train a classifier to handle outliers, and using it as a gatekeeper for final prediction.  I actually though of it when I entered ELO, but did not think of it anymore until I read your post.  We were wondering what we were missing, and this is probably it.  Thanks for having shared so fast.</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 489417,
      "author_name": "Tim Riggins",
      "author_url": "",
      "post_date": "2019-03-13T22:03:33.730000",
      "content": "<p>Ya priness renaissance kak Medici</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 481171,
      "author_name": "Tzeny",
      "author_url": "",
      "post_date": "2019-03-01T05:34:13.133000",
      "content": "<p>Nice trick!</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 480896,
      "author_name": "Jiwei Liu",
      "author_url": "",
      "post_date": "2019-02-28T20:34:15.057000",
      "content": "<p>Big congrats! That's a nice trick!</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 480841,
      "author_name": "lucaskg",
      "author_url": "",
      "post_date": "2019-02-28T18:36:55.870000",
      "content": "<p>Congrats!! </p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 480416,
      "author_name": "Harold_Guo",
      "author_url": "",
      "post_date": "2019-02-28T06:32:58.707000",
      "content": "<p>Could you please show more details? Thanks.</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 480159,
      "author_name": "Masaki Okauchi",
      "author_url": "",
      "post_date": "2019-02-27T21:04:04.153000",
      "content": "<p>congratulations!!</p>\n\n<p>I surprised that such a simple feature boosted 0.015 in local cv. Great!\nI think your great work is to have made the high precision outlier classifier (0.914).\nWhen I made it, it didn't work.It was bad classifier.\nIf you can, tell us about it (how to make of good classifier for this competition).</p>\n\n<p>Thank you for your sharing.</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 480023,
      "author_name": "Mohit Bindra",
      "author_url": "",
      "post_date": "2019-02-27T17:34:11.330000",
      "content": "<p>Congrats...</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479979,
      "author_name": "RVPrakash",
      "author_url": "",
      "post_date": "2019-02-27T16:36:24.977000",
      "content": "<p>Congratulations on winning and thanks for sharing... one thing i don't understand clearly - did you train your regression model on data without outliers? did you include those without any new merchant transactions?</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479715,
      "author_name": "AmirH",
      "author_url": "",
      "post_date": "2019-02-27T11:06:51.053000",
      "content": "<p>Hi,\nWhat was your Logloss\\AUC for the binary classification? \nand the RMSE for the regression without outlier?</p>\n\n<p>I tried this now on my model with late submission and result is good but not awesome.\nMy Classifier Logloss: 0.0435, AUC: 0.908~\nRegression CV:1.544</p>\n\n<p>Thanks!!</p>",
      "votes": 0,
      "replies": [
        {
          "id": 479772,
          "author_name": "30CrMnSiA",
          "author_url": "",
          "post_date": "2019-02-27T12:16:01.170000",
          "content": "<p>Classifier AUC: 0.914 \nno outlier Regression CV:1.545</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 479618,
      "author_name": "Boatin",
      "author_url": "",
      "post_date": "2019-02-27T09:35:56.917000",
      "content": "<p>Congrats! Nice trick!!</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479482,
      "author_name": "Karthik Chowdary Tsaliki",
      "author_url": "",
      "post_date": "2019-02-27T07:23:20.970000",
      "content": "<p><a href=\"/h4211819\">@h4211819</a>, congrats for getting first and thanks for sharing this. </p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479387,
      "author_name": "Icfstat",
      "author_url": "",
      "post_date": "2019-02-27T05:28:42.567000",
      "content": "<p>Congratulations !!! Smart shot !!!</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479352,
      "author_name": "Manchoi",
      "author_url": "",
      "post_date": "2019-02-27T04:57:40.603000",
      "content": "<p>Congrats!</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479335,
      "author_name": "mrxnew",
      "author_url": "",
      "post_date": "2019-02-27T04:30:57.247000",
      "content": "<p>Congrats..</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479294,
      "author_name": "senkin13",
      "author_url": "",
      "post_date": "2019-02-27T03:49:10.980000",
      "content": "<p>Congrats! </p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479253,
      "author_name": "Correlation",
      "author_url": "",
      "post_date": "2019-02-27T03:13:23.057000",
      "content": "<p>Congrats!\nI set outlier to 0 for 'no outlier' model. My final result is 'binary prob' * -33.. + 'no outlier predict'.\nYour trick is better, I guess. Because the normal value and outlier are not the same distribution.</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479211,
      "author_name": "李胃疼疼疼",
      "author_url": "",
      "post_date": "2019-02-27T02:48:10.967000",
      "content": "<p>Great work! Congratulation! </p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479149,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-02-27T01:44:54.670000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479139,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-02-27T01:36:55.130000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479124,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-02-27T01:21:22.870000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479117,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-02-27T01:17:35.740000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479105,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-02-27T01:07:55.507000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479099,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-02-27T01:01:30.970000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479096,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-02-27T00:57:09.817000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479076,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-02-27T00:46:16.027000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479069,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-02-27T00:41:41.153000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479064,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-02-27T00:34:52.857000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479054,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-02-27T00:24:46.120000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479052,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-02-27T00:23:43.603000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479048,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-02-27T00:20:11.213000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479042,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-02-27T00:13:50.247000",
      "content": "",
      "votes": 0,
      "replies": [
        {
          "id": 479062,
          "author_name": "",
          "author_url": "",
          "post_date": "2019-02-27T00:32:32.703000",
          "content": "",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 479040,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-02-27T00:12:45.980000",
      "content": "",
      "votes": 0,
      "replies": [
        {
          "id": 479047,
          "author_name": "",
          "author_url": "",
          "post_date": "2019-02-27T00:19:29.520000",
          "content": "",
          "votes": 4,
          "replies": []
        },
        {
          "id": 479049,
          "author_name": "",
          "author_url": "",
          "post_date": "2019-02-27T00:20:35.223000",
          "content": "",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 2683991,
      "author_name": "",
      "author_url": "",
      "post_date": "2024-03-06T10:24:49.140000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 480221,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-02-28T00:04:17.383000",
      "content": "",
      "votes": -1,
      "replies": []
    },
    {
      "id": 479800,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-02-27T12:40:08.240000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479039,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-02-27T00:11:15.983000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 482520,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-03-03T06:19:49.100000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479829,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-02-27T13:25:14.533000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 479283,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-02-27T03:37:44.613000",
      "content": "",
      "votes": 0,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "479038": "train['final'] = train['bin_predict']*(-33.21928)+(1-train['bin_predict'])*train['no_outlier']\n\n0.015 boost in local cv compare with same feature train directly\n\nI think this trick works because binary is better than regression even though metric is rmse when label is 1&amp;0\n\nlike Kaza's post \nhttps://www.kaggle.com/c/avito-demand-prediction/discussion/59885 \nthis competition is rmse too,but Kaza use xentropy as their objective\n\nadd：\nClassifier AUC: 0.914 \nno outlier Regression CV:1.545\n\nthe most important features for binary_predict from this post\nhttps://www.kaggle.com/c/home-credit-default-risk/discussion/64503#378162",
    "479046": "I guess you mean \n\nP(outlier) * (-33.21928) + (1 - P(outlier)) * (value predicted by regression model)\n\nwhere P(outlier) is the probability given by a binary classifier. ",
    "480907": "Possible.",
    "479065": "is it the shortest write-up ever written ?",
    "479549": "Congrats for your winning. I think this kind of trick was used by many top teams. I mean, linearly stacking binary preds and regression preds without outliers. Your score is way ahead of rest of the top teams and I believe in that you might did some other stuff that we missed as well. (like some boosting smart features etc.)\n\nSo, I hope, this won't be the only sharing coming from you :)",
    "479057": "I did the same too! I also tried running kNN with training_y = binary(outlier or not) and X = (binary classifier output) in an attempt to adjust the outlier classifier's output. At the end the raw classifier output works best. Congratulations!",
    "482310": "就和你差了个(1-train['binpredict'])\n我写的train['final'] = train['binpredict'](-33.21928)+train['no_outlier']\n诶，没考虑仔细",
    "479770": "I have just tried this trick on my model with late submission, and it does not work well for me. \n\n&gt; train['final'] = train['binpredict'](-33.21928)+(1-train['binpredict'])train['no_outlier']\n\nI have tried the followiing two understandings:\n\n**1.**\n\n    no_oulier_sub.target*(1-df_outlier_prob.out_prob)-33.21928*df_outlier_prob.out_prob\n\nThis performs well on the public leaderboard, with 3.681, but a bad performance on the private leaderboard , with 3.611.\n\n**2.**\n\n    no_oulier_sub.loc[outlier_prob.index, 'target'] = -33.21928*outlier_prob['out_prob']\n    no_oulier_sub.loc[inlier_prob.index, 'target'] = (1-inlier_prob['out_prob'])*no_oulier_sub.loc[inlier_prob.index, 'target']\n\nwhere outlier_prob selects the highest 25000 probilities of the test data. This gets a bad performance on both public and private leaderboard, with 3.711 and 3.640. \n\nBut still thanks for your sharing. Maybe it will work in my future model:)",
    "479168": "I think this  trick works because binary is better than regression even though metric is rmse when label is 1&amp;0\n\nlike Kaza's post \nhttps://www.kaggle.com/c/avito-demand-prediction/discussion/59885 \nthis competition is rmse too,but Kaza use xentropy as their  objective",
    "479082": "Good job,  Congrats!",
    "479071": "Congrats!!\n\nHope to see a kernel explaining the solution. In the meantime, can someone please explain what these operations mean and why is it important?",
    "479060": "Congratulations for being in the first place! I have also tried that strategy but sadly in my case it didnt help boost cv..",
    "479058": "This reminds me of the approach Heng Cherkeng used in TGS: He too suggested to train a classifier to handle outliers, and using it as a gatekeeper for final prediction.  I actually though of it when I entered ELO, but did not think of it anymore until I read your post.  We were wondering what we were missing, and this is probably it.  Thanks for having shared so fast.",
    "489417": "Ya priness renaissance kak Medici",
    "481171": "Nice trick!",
    "480896": "Big congrats! That's a nice trick!",
    "480841": "Congrats!! ",
    "480416": "Could you please show more details? Thanks.",
    "480159": "congratulations!!\n\nI surprised that such a simple feature boosted 0.015 in local cv. Great!\nI think your great work is to have made the high precision outlier classifier (0.914).\nWhen I made it, it didn't work.It was bad classifier.\nIf you can, tell us about it (how to make of good classifier for this competition).\n\nThank you for your sharing.",
    "480023": "Congrats...",
    "479979": "Congratulations on winning and thanks for sharing... one thing i don't understand clearly - did you train your regression model on data without outliers? did you include those without any new merchant transactions?",
    "479715": "Hi,\nWhat was your Logloss\\AUC for the binary classification? \nand the RMSE for the regression without outlier?\n\nI tried this now on my model with late submission and result is good but not awesome.\nMy Classifier Logloss: 0.0435, AUC: 0.908~\nRegression CV:1.544\n\nThanks!!",
    "479618": "Congrats! Nice trick!!",
    "479482": "@h4211819, congrats for getting first and thanks for sharing this. ",
    "479387": "Congratulations !!! Smart shot !!!",
    "479352": "Congrats!",
    "479335": "Congrats..",
    "479294": "Congrats! ",
    "479253": "Congrats!\nI set outlier to 0 for 'no outlier' model. My final result is 'binary prob' * -33.. + 'no outlier predict'.\nYour trick is better, I guess. Because the normal value and outlier are not the same distribution.",
    "479211": "Great work! Congratulation! ",
    "479149": "Congrats! Perfect formula!",
    "479139": "Congrats",
    "479124": "One shot to kill, straight to the heart. Congratulations and thanks for sharing",
    "479117": "Good Job and thanks for sharing this small and quick secret.",
    "479105": "Congrats!\nFor `RMSE` metric, the weighted mean is absolutely better than manual setting. The public LB(30% of test) definitely has more outliers which makes manual setting get PLB improve. Many of us overfit the public LB.",
    "479099": "@h4211819, congrats and thanks for sharing this neat trick. I wish I have thought of it myself :-)\n\nHere is my post on feature selection techniques https://www.kaggle.com/c/elo-merchant-category-recommendation/discussion/82052",
    "479096": "Congrats",
    "479076": "great work！congrats~",
    "479069": "that's amazing...",
    "479064": "how many feature  you take in the end",
    "479054": "Congrats, nice trick.",
    "479052": "Congratulations!!!",
    "479048": "Good job, I wish I would've thought of that! :)",
    "479042": "Congrats on the win! (by a large margin!) I started using something similar to this trick but got caught up in chasing public leaderboard and began ignoring local CV in the frustration with this data. Lesson learned and thank you for sharing. ",
    "479040": "Congrats!\n\nWhat are these `binpredict` and `no_outlier` ?",
    "2683991": "",
    "480221": "",
    "479800": "",
    "479039": "",
    "482520": "Thanks for sharing ! :)",
    "479829": "Congratulations and thanks for sharing!",
    "479283": "nice idea. thanks for sharing"
  }
}