{
  "id": 66275,
  "title": "Session-level vs User-level models",
  "url": "/competitions/ga-customer-revenue-prediction/discussion/66275",
  "author_name": "Aguiar",
  "post_date": "2018-09-19T21:58:42.600000",
  "votes": 5,
  "comment_count": 3,
  "views": 0,
  "content": "<p>I was trying to predict the revenue for each session (visit) without any transformations on target, sum the revenue for each user and finally apply log1p, but the results were really bad. Applying log1p before making predictions improved a lot the scores, but that's not the proposed metric as I was actually doing sum(log1p(revenue)).</p>\n\n<p>So I think using a user-level model with target log1p(sum(revenue)) straight way might be more reliable. What are your thoughts on this? I'm also not sure if my approach was right.</p>",
  "messages": [
    {
      "id": 390220,
      "postDate": "2018-09-19T21:58:42.600Z",
      "content": "<p>I was trying to predict the revenue for each session (visit) without any transformations on target, sum the revenue for each user and finally apply log1p, but the results were really bad. Applying log1p before making predictions improved a lot the scores, but that's not the proposed metric as I was actually doing sum(log1p(revenue)).</p>\n\n<p>So I think using a user-level model with target log1p(sum(revenue)) straight way might be more reliable. What are your thoughts on this? I'm also not sure if my approach was right.</p>",
      "rawMarkdown": "I was trying to predict the revenue for each session (visit) without any transformations on target, sum the revenue for each user and finally apply log1p, but the results were really bad. Applying log1p before making predictions improved a lot the scores, but that's not the proposed metric as I was actually doing sum(log1p(revenue)).\n\nSo I think using a user-level model with target log1p(sum(revenue)) straight way might be more reliable. What are your thoughts on this? I'm also not sure if my approach was right.",
      "votes": 5
    },
    {
      "id": 390222,
      "postDate": "2018-09-19T22:06:38.610Z",
      "content": "<p>Here's my take on this. At the session level, each prediction has a possible <code>error</code>. So if a user has 10 visits, the maximum number of error is <code>10 * error</code>. But if you predict at the user level, your error is probably going to be a lot lower, because your error is only attributed to one prediction as opposed to ten.</p>",
      "rawMarkdown": "Here's my take on this. At the session level, each prediction has a possible `error`. So if a user has 10 visits, the maximum number of error is `10 * error`. But if you predict at the user level, your error is probably going to be a lot lower, because your error is only attributed to one prediction as opposed to ten.",
      "votes": 3
    },
    {
      "id": 390578,
      "postDate": "2018-09-20T13:10:15.123Z",
      "rawMarkdown": "",
      "votes": 1,
      "isDeleted": true,
      "replies": [
        {
          "id": 390697,
          "postDate": "2018-09-20T16:47:18.390Z",
          "content": "<p>That's true, but you can also add aggregation features to each visit (like number of previous visits, or revenue in previous transactions)</p>",
          "rawMarkdown": "That's true, but you can also add aggregation features to each visit (like number of previous visits, or revenue in previous transactions)",
          "votes": 2
        }
      ]
    }
  ],
  "comments": [
    {
      "id": 390222,
      "author_name": "CoreyJamesLevinson",
      "author_url": "",
      "post_date": "2018-09-19T22:06:38.610000",
      "content": "<p>Here's my take on this. At the session level, each prediction has a possible <code>error</code>. So if a user has 10 visits, the maximum number of error is <code>10 * error</code>. But if you predict at the user level, your error is probably going to be a lot lower, because your error is only attributed to one prediction as opposed to ten.</p>",
      "votes": 3,
      "replies": []
    },
    {
      "id": 390578,
      "author_name": "",
      "author_url": "",
      "post_date": "2018-09-20T13:10:15.123000",
      "content": "",
      "votes": 1,
      "replies": [
        {
          "id": 390697,
          "author_name": "Aguiar",
          "author_url": "",
          "post_date": "2018-09-20T16:47:18.390000",
          "content": "<p>That's true, but you can also add aggregation features to each visit (like number of previous visits, or revenue in previous transactions)</p>",
          "votes": 2,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "390220": "I was trying to predict the revenue for each session (visit) without any transformations on target, sum the revenue for each user and finally apply log1p, but the results were really bad. Applying log1p before making predictions improved a lot the scores, but that's not the proposed metric as I was actually doing sum(log1p(revenue)).\n\nSo I think using a user-level model with target log1p(sum(revenue)) straight way might be more reliable. What are your thoughts on this? I'm also not sure if my approach was right.",
    "390222": "Here's my take on this. At the session level, each prediction has a possible `error`. So if a user has 10 visits, the maximum number of error is `10 * error`. But if you predict at the user level, your error is probably going to be a lot lower, because your error is only attributed to one prediction as opposed to ten.",
    "390578": ""
  }
}