{
  "id": 41614,
  "title": "Is uV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek= churn or not ?",
  "url": "/competitions/kkbox-churn-prediction-challenge/discussion/41614",
  "author_name": "",
  "post_date": "2017-10-21T03:02:41.980461800Z",
  "votes": null,
  "comment_count": 5,
  "views": 0,
  "content": "<p>There are two transactions in 2017 on this user.<br>\n<strong>~/# cat data/transactions.csv |grep uV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek=\nuV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek=,38,30,149,149,0,20170103,20170202,0\nuV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek=,38,30,149,149,0,20170125,20170304,0</strong></p>\n\n<p><br>\nIn the Training set, this user is tagged as churn.<br>\n<strong>~/# cat data/train.csv |grep uV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek=\nuV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek=,1</strong></p>\n\n<p><br>\nI am wondering why this user is counted as churn at Training set ?</p>",
  "messages": [
    {
      "id": "233751",
      "postDate": "10/21/2017 03:02:41",
      "content": "<p>There are two transactions in 2017 on this user.<br>\n<strong>~/# cat data/transactions.csv |grep uV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek=\nuV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek=,38,30,149,149,0,20170103,20170202,0\nuV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek=,38,30,149,149,0,20170125,20170304,0</strong></p>\n\n<p><br>\nIn the Training set, this user is tagged as churn.<br>\n<strong>~/# cat data/train.csv |grep uV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek=\nuV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek=,1</strong></p>\n\n<p><br>\nI am wondering why this user is counted as churn at Training set ?</p>",
      "rawMarkdown": "There are two transactions in 2017 on this user.<br>\n**~/# cat data/transactions.csv |grep uV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek=\nuV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek=,38,30,149,149,0,20170103,20170202,0\nuV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek=,38,30,149,149,0,20170125,20170304,0**\n\n<br>\nIn the Training set, this user is tagged as churn.<br>\n**~/# cat data/train.csv |grep uV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek=\nuV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek=,1**\n\n<br>\nI am wondering why this user is counted as churn at Training set ?",
      "votes": null
    },
    {
      "id": "233930",
      "postDate": "10/21/2017 20:41:00",
      "content": "<p>The user didn't cancel the account, and didn't renew it.\nThe account just expired and one month later he was considered as churned...</p>",
      "rawMarkdown": "The user didn't cancel the account, and didn't renew it.\nThe account just expired and one month later he was considered as churned...",
      "votes": null
    },
    {
      "id": "234289",
      "postDate": "10/22/2017 22:01:17",
      "content": "<p>I have the same question for this. Based on example 3 of problem description, this person did nothing in Feb but his plan expires in 3/4. Even if he cancel the latter plan in March, he is not considered as 'in scope'. My intuition is that this person even shouldn't appear in the Training set as stated in example 3. </p>",
      "rawMarkdown": "I have the same question for this. Based on example 3 of problem description, this person did nothing in Feb but his plan expires in 3/4. Even if he cancel the latter plan in March, he is not considered as 'in scope'. My intuition is that this person even shouldn't appear in the Training set as stated in example 3.",
      "votes": null
    },
    {
      "id": "234300",
      "postDate": "10/22/2017 22:46:52",
      "content": "<p>The data description says:</p>\n\n<blockquote>\n  <p>The train and the test data are selected from users whose membership\n  expire within a certain month. The train data consists of users whose\n  subscription expires within the month of February 2017...</p>\n</blockquote>\n\n<p>We initially interpreted that to mean the set of members scheduled to have their subscriptions expire in Feb 2017 given the entire sequence of events reflected in transactions for each member up through Jan 31, 2017. We wrote code to produce this set of members for any month (and while working on that had questions similar to the one in this thread). However, when we ran our code for Feb 2017, we received a different set of members than the training set. We believe the team that prepared the data used a simpler approach to selecting the training members--something closer to simply looking for a transaction with an expiration date in the month in question, rather than taking into account all of the transaction events for each member.</p>\n\n<p>After reflecting on the business problem, we thought the best way to pick the set of members for prediction would be all active members as of a particular date, rather than all members scheduled to expire in a particular month. If members can cancel at any time and you want to intervene before they cancel, why lose the chance to intervene just because a member is on a longer plan and not scheduled to expire in the coming month? This approach wouldn't actually be a big change in terms of numbers they need to predict for since so many members are on month to month plans.</p>",
      "rawMarkdown": "The data description says:\n\n&gt; The train and the test data are selected from users whose membership\n&gt; expire within a certain month. The train data consists of users whose\n&gt; subscription expires within the month of February 2017...\n\nWe initially interpreted that to mean the set of members scheduled to have their subscriptions expire in Feb 2017 given the entire sequence of events reflected in transactions for each member up through Jan 31, 2017. We wrote code to produce this set of members for any month (and while working on that had questions similar to the one in this thread). However, when we ran our code for Feb 2017, we received a different set of members than the training set. We believe the team that prepared the data used a simpler approach to selecting the training members--something closer to simply looking for a transaction with an expiration date in the month in question, rather than taking into account all of the transaction events for each member.\n\nAfter reflecting on the business problem, we thought the best way to pick the set of members for prediction would be all active members as of a particular date, rather than all members scheduled to expire in a particular month. If members can cancel at any time and you want to intervene before they cancel, why lose the chance to intervene just because a member is on a longer plan and not scheduled to expire in the coming month? This approach wouldn't actually be a big change in terms of numbers they need to predict for since so many members are on month to month plans.",
      "votes": null
    },
    {
      "id": "234641",
      "postDate": "10/23/2017 18:01:14",
      "content": "<p>Do you plan to give more information regarding the leak That lead you to your current score ? </p>",
      "rawMarkdown": "Do you plan to give more information regarding the leak That lead you to your current score ?",
      "votes": null
    },
    {
      "id": "234806",
      "postDate": "10/24/2017 05:38:56",
      "content": "<p>“After reflecting on the business problem, we thought the best way to pick the set of members for prediction would be all active members as of a particular date, rather than all members scheduled to expire in a particular month. ” Could you plz explain more about the definition of  \"active members\" here? I had the same thoughts before but didn't figure out how to do that... Just to confirm that in the training set of your best trial, did you pick out the active members?</p>",
      "rawMarkdown": "“After reflecting on the business problem, we thought the best way to pick the set of members for prediction would be all active members as of a particular date, rather than all members scheduled to expire in a particular month. ” Could you plz explain more about the definition of  \"active members\" here? I had the same thoughts before but didn't figure out how to do that... Just to confirm that in the training set of your best trial, did you pick out the active members?",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 233930,
      "author_name": "juanumusic",
      "author_url": "",
      "post_date": "10/21/2017 20:41:00",
      "content": "<p>The user didn't cancel the account, and didn't renew it.\nThe account just expired and one month later he was considered as churned...</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 234289,
      "author_name": "wrbuaa2005",
      "author_url": "",
      "post_date": "10/22/2017 22:01:17",
      "content": "<p>I have the same question for this. Based on example 3 of problem description, this person did nothing in Feb but his plan expires in 3/4. Even if he cancel the latter plan in March, he is not considered as 'in scope'. My intuition is that this person even shouldn't appear in the Training set as stated in example 3. </p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 234300,
      "author_name": "oomsal",
      "author_url": "",
      "post_date": "10/22/2017 22:46:52",
      "content": "<p>The data description says:</p>\n\n<blockquote>\n  <p>The train and the test data are selected from users whose membership\n  expire within a certain month. The train data consists of users whose\n  subscription expires within the month of February 2017...</p>\n</blockquote>\n\n<p>We initially interpreted that to mean the set of members scheduled to have their subscriptions expire in Feb 2017 given the entire sequence of events reflected in transactions for each member up through Jan 31, 2017. We wrote code to produce this set of members for any month (and while working on that had questions similar to the one in this thread). However, when we ran our code for Feb 2017, we received a different set of members than the training set. We believe the team that prepared the data used a simpler approach to selecting the training members--something closer to simply looking for a transaction with an expiration date in the month in question, rather than taking into account all of the transaction events for each member.</p>\n\n<p>After reflecting on the business problem, we thought the best way to pick the set of members for prediction would be all active members as of a particular date, rather than all members scheduled to expire in a particular month. If members can cancel at any time and you want to intervene before they cancel, why lose the chance to intervene just because a member is on a longer plan and not scheduled to expire in the coming month? This approach wouldn't actually be a big change in terms of numbers they need to predict for since so many members are on month to month plans.</p>",
      "votes": null,
      "replies": [
        {
          "id": 234641,
          "author_name": "jayjay75",
          "author_url": "",
          "post_date": "10/23/2017 18:01:14",
          "content": "<p>Do you plan to give more information regarding the leak That lead you to your current score ? </p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 234806,
          "author_name": "yingbiu",
          "author_url": "",
          "post_date": "10/24/2017 05:38:56",
          "content": "<p>“After reflecting on the business problem, we thought the best way to pick the set of members for prediction would be all active members as of a particular date, rather than all members scheduled to expire in a particular month. ” Could you plz explain more about the definition of  \"active members\" here? I had the same thoughts before but didn't figure out how to do that... Just to confirm that in the training set of your best trial, did you pick out the active members?</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "233751": "There are two transactions in 2017 on this user.<br>\n**~/# cat data/transactions.csv |grep uV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek=\nuV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek=,38,30,149,149,0,20170103,20170202,0\nuV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek=,38,30,149,149,0,20170125,20170304,0**\n\n<br>\nIn the Training set, this user is tagged as churn.<br>\n**~/# cat data/train.csv |grep uV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek=\nuV7rJjHPrpNssDMmY2OnfJnib8BUqeyvUxrIQnbRwek=,1**\n\n<br>\nI am wondering why this user is counted as churn at Training set ?",
    "233930": "The user didn't cancel the account, and didn't renew it.\nThe account just expired and one month later he was considered as churned...",
    "234289": "I have the same question for this. Based on example 3 of problem description, this person did nothing in Feb but his plan expires in 3/4. Even if he cancel the latter plan in March, he is not considered as 'in scope'. My intuition is that this person even shouldn't appear in the Training set as stated in example 3.",
    "234300": "The data description says:\n\n&gt; The train and the test data are selected from users whose membership\n&gt; expire within a certain month. The train data consists of users whose\n&gt; subscription expires within the month of February 2017...\n\nWe initially interpreted that to mean the set of members scheduled to have their subscriptions expire in Feb 2017 given the entire sequence of events reflected in transactions for each member up through Jan 31, 2017. We wrote code to produce this set of members for any month (and while working on that had questions similar to the one in this thread). However, when we ran our code for Feb 2017, we received a different set of members than the training set. We believe the team that prepared the data used a simpler approach to selecting the training members--something closer to simply looking for a transaction with an expiration date in the month in question, rather than taking into account all of the transaction events for each member.\n\nAfter reflecting on the business problem, we thought the best way to pick the set of members for prediction would be all active members as of a particular date, rather than all members scheduled to expire in a particular month. If members can cancel at any time and you want to intervene before they cancel, why lose the chance to intervene just because a member is on a longer plan and not scheduled to expire in the coming month? This approach wouldn't actually be a big change in terms of numbers they need to predict for since so many members are on month to month plans.",
    "234641": "Do you plan to give more information regarding the leak That lead you to your current score ?",
    "234806": "“After reflecting on the business problem, we thought the best way to pick the set of members for prediction would be all active members as of a particular date, rather than all members scheduled to expire in a particular month. ” Could you plz explain more about the definition of  \"active members\" here? I had the same thoughts before but didn't figure out how to do that... Just to confirm that in the training set of your best trial, did you pick out the active members?"
  },
  "source": "meta"
}